起来看一眼,我的朋友圈
哎哟,哟
周末干点啥?外卖睡觉写代码
周末干点啥?做饭睡觉去带娃
周末干点啥?思念睡觉买鲜花
周末干点啥?发呆睡觉好邋遢
周末干点啥?暴晒睡觉被球打
周末干点啥?看书睡觉学爪哇
周末干点啥?葛优睡觉追剧呀
周末干点啥?思考睡觉爬山啊
.............
哟哟哟,周末还能干点啥
起来写公众号呀,笑cry,所谓加了权限,就是不希望被其他人乱搞,把数据弄的一塌糊涂。ACL-保障数据安全,听着真像一句广告。
这上面写着ACL的控制比起 linux的权限控制(user,gourp,others)的力度更加细一些,而且后面也指出ACL只是对一个节点Node有效的,if /app is only readable by ip:172.16.16.1 and /app/status is world readable, anyone will be able to read /app/status; ACLs are not recursive 这个例子举的哈市很明确的吧。当客户端连接到ZooKeeper验证自己时,ZooKeeper将有关该客户端的所有Id与客户连接关联。客户端试图访问一个节点时,这些ID与该znodes的ACL验证。
zk的ACL控制 权限模式Scheme:ip digest world super
ACL的权限有下面几种:
那我们看看 平时习惯的 digest模式 用户名:密码
zookeeper的这个方法 可以为连接设置权限,但是上面写着不是线程安全的,不过什么地方会用到并发用一个客户端去操作呢?
向前辈学习一点代码
输出日志:
其实我经常是创建了一些节点,但是我忘记权限啦,那就用super 超级权限(可以用来为所欲为的),需要先生成一个key,可以用的api自带的org.apache.zookeeper.server.auth.DigestAuthenticationProvider,
实现:
日志输出:
然后需要在服务器 启动配置的配置超级权限
nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" "-Dzookeeper.DigestAuthenticationProvider.superDigest=super:UMlh8BKa9fvGzvsVXZGmGZUleSk=" \
然后我们就可以开始为所欲为啦,使用super:zk-xin
日志输出:
看到使用超级权限 就可以操作啦!!
开始享受周日仅剩的美好时光
公众号