本地Eclipse Ditto创建策略/事物报401、沙箱操作报错如何解决?
问题解决方案
本地Ditto返回401的原因及所需配置
你本地Docker部署的默认Ditto实例中,ditto:ditto默认仅配置了读权限,没有策略创建、修改类操作的写权限,这是触发401报错的核心原因。需要做的调整如下:
- 直接替换curl命令中的认证参数即可,默认的管理员账号密码为
devops:foobar,修改后的curl命令为:
curl -X PUT 'http://localhost:8080/api/2/policies/my.test:policy' -u 'devops:foobar' -H 'Content-Type: application/json' -d '{"entries": {"owner": {"subjects": {"nginx:ditto": {"type": "nginx basic auth user"}},"resources": {"thing:/": {"grant": ["READ","WRITE"],"revoke": []},"policy:/": {"grant": ["READ","WRITE"],"revoke": []},"message:/": {"grant": ["READ","WRITE"],"revoke": []}}}}'
- 如果需要保留使用
ditto账号操作,可在启动容器前修改部署目录下nginx的权限配置规则,给ditto用户添加对应路径的写权限即可。 - 本地swagger操作时,授权环节填写
devops:foobar再发起请求即可解决401问题。
沙箱操作报错的原因
你访问的在线API文档页面仅作为接口说明使用,没有对接真实的运行沙箱环境,直接在该页面发起请求会触发跨域限制,所以会返回NetworkError类的报错。
内容的提问来源于stack exchange,提问作者Liudmila Dobriakova
相关产品推荐
相关产品推荐

