eclipse-hono - Eclipse Hono - 401 未经授权的错误(即使凭据正确)
问题描述
我正在使用以下命令在 Eclipse Hono 中创建租户
$ curl -X POST -i -H 'Content-Type: application/json' -d '{"tenant-id": "testenant1"}'
http://localhost:28080/tenant
HTTP/1.1 201 Created
location: /tenant/testenant1
content-length: 0
使用以下命令在租户中注册设备
curl -X POST -i -H 'Content-Type: application/json' -d '{"device-id": "1"}'
http://localhost:28080/registration/testenant1
HTTP/1.1 201 Created
location: /registration/testenant1/1
content-length: 0
使用以下命令对注册的设备进行身份验证
$ curl -i -X POST -H 'Content-Type: application/json' --data-binary '{
"device-id": "1",
"type": "hashed-password",
"auth-id": "newAuth1",
"secrets": [{
"pwd-plain": "mylittle"
}]
}' http://localhost:28080/credentials/testenant1
HTTP/1.1 201 Created
location: /credentials/testenant1/newAuth1/hashed-password
content-length: 0
当我尝试使用以下命令将数据发送到此已注册和经过身份验证的设备时。
curl -X POST -i -u newAuth1@testenant1:mylittle -H 'Content-Type: application/json' -d '{"temp": 23.07, "hum": 45.85}' http://localhost:8080/telemetry
HTTP/1.1 401 未经授权的内容长度:0
我将收到 401 Unauthorized 错误(我期待 503 - Service Unavailable 错误)。
注意:我之前使用过类似的方法,并且效果很好。我不确定我是否遗漏了什么。
解决方案
您在发布数据时使用了错误的凭据。用户名始终由auth-id和tenant-id组成,以@
.
你需要使用:
curl -X POST -i -u newAuth1@testenant1:mylittle -H 'Content-Type: application/json' -d '{"temp": 23.07, "hum": 45.85}' http://localhost:8080/telemetry
也就是说,根据您用于注册租户和设备的 URI,您似乎使用的是相当旧的 Hono 版本。请考虑升级到最新版本 (1.1.1) 以利用最近的开发/错误修复...
推荐阅读
- python - Pulumi Import GCP Instance Error in boot_disk 属性冲突
- javascript - 如何监听“计数”变量的变化并根据其值触发动作
- python - 在 Keras 中训练分类问题时,神经网络的准确率始终为 0
- dataframe - where子句值的pyspark数据帧计数等于
- sed - 使用 sed 删除特定字符和换行符
- ubuntu - Debian 10 上的 Curl 返回错误 html 而不是 pdf
- html - 表:以百分比表示的列宽与以像素为单位的最小宽度
- c++ - c++直方图随机数
- reactjs - 在表格单元格中使用tippyjs-react
- sqlite - 慢sqlite EF任何状态