我正在使用以下命令在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未经授权的错误(我希望是503-服务不可用错误)。
注意:之前我使用过类似的方法,并且效果很好。我不确定是否丢失了一些东西。
答案 0 :(得分:0)
发布数据时,您使用了错误的凭据。用户名始终由 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),以利用最近的开发/错误修复...