在ZooKeeper中,可以为节点设置权限,这样只有用户对应权限的客户端才能访问到指定的节点。
ZooKeeper中的权限认证可以分为 scheme、id、permission。其中scheme为验证的种类,id为对应类型中的登录id,permission为登录id的权限。
一、scheme:
其中scheme分为四种:
world:默认方式,即所有人都可以访问。
auth:使用id来进行验证,可以认为是直接传入 userName:passWord 来进行验证
digest:也是使用用户名:密码的形式进行验证,不过要对passWord进行MD5哈希,然后再进行bese64。
ip:使用ip地址进行验证。
下面重点讲一下world与digest:
1、world:
我们默认创建节点的时候使用 world,即 world:anyone:cdrwa ,使用的时候,可以:
setAcl / world:anyone:cdrwa
此为创建 / 节点的验证为所有人都可以增删改查。
2、digest:
即账号密码验证,比如账号密码为 heng 123456 ,那么验证之后的为 BASE64(SHA1(xxx) ,即 BASE64(SHA1(heng+123456),可以使用zooKeeper中的工具来获取:
java -Djava.ext.dirs=/Users/happyheng/Java/zookeeper-3.4.13/lib -cp /Users/happyheng/Java/zookeeper-3.4.13/zookeeper-3.