我想在zookeeper上使用自定义登录模块,然后允许任何具有登录功能的经过身份验证的用户对znode执行任何操作。我该怎么做呢?
setAcl /znode auth:crdwa
不是有效的acl分配。如果没有其他方法可以指定用户名,我是否可以至少设置acl而不指定密码?类似的东西:
setAcl /znode auth:user:crdwa
我希望使用自定义登录模块来处理身份验证。
答案 0 :(得分:0)
zkCli中zookeeper acl的正确示例是:
首先让我们生成密码:
java -cp zookeeper-3.4.6.jar:lib/log4j-1.2.16.jar:lib/slf4j-log4j12-1.6.1.jar:lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider u1:p1
u1:p1->u1:fpT/y03U+EjItKZOSLGvjnJlyng=
在zkCli会话中,让我们进行身份验证:
addauth digest u1:p1
然后让我们将ACL设置为某个节点:
[zk: localhost:2181(CONNECTED) 14] setAcl /someZNode digest:u1:fpT/y03U+EjItKZOSLGvjnJlyng=:crdwa
如果计划使用自定义登录模块,则应根据Pluggable Zookeeper Authentication实现AuthenticationProvider,并将实现类的jar文件放入{zookeeperDir} / lib目录