【发布时间】:2018-07-30 22:15:13
【问题描述】:
[zk: 9] addauth digest user:defaultPassword
[zk: 32] create /test
Created /test
[zk: 33] create /test/can-delete null digest:user:xMNYqfrT373RREgAzmYepA2oLxY=:cdrw
Created /test/can-delete
[zk: 34] getAcl /test/can-delete
'digest,'user:xMNYqfrT373RREgAzmYepA2oLxY=:cdrw
[zk: 35] create /test/cant-delete null digest:user:xMNYqfrT373RREgAzmYepA2oMHb=:cdrw
Created /test/cant-delete
[zk: 37] delete /test/can-delete
[zk: 38] delete /test/cant-delete
(localhost:2181(CONNECTED)从上面的每一行中删除,以提高可读性)
- 设置有 1 个服务器和 1 个客户端。
- 首先我在命令 9 中验证自己。
- 我在32中创建了一个test节点
- 我在其中创建了一个具有正确 ACL 的 can-delete 节点。
- 在同一个 test 文件夹中,我创建了另一个具有不正确 ACL 权限的 cant-delete 节点(如果您看到摘要密码的“=”之前的最后 3 个字符,与命令 34 中的 on 相比,我在命令 35 中更改了它们)。
- 我尝试删除两个节点(可以删除和无法删除)。我成功了。
我无法理解为什么以及如何允许我删除 cant-delete,因为 ACL 与经过身份验证的 ID:PASSWORD 不匹配。我期待这会向我抛出 NoAuthException。
请帮忙,谢谢。
【问题讨论】:
-
我认为 ACL 是为了安全。所以你的意思是在删除它时只检查用户名是否相同。它根本不检查密码吗?我尝试阅读,但没有得到 NoAuth 的响应。
标签: java permissions apache-zookeeper acl