1. 启动zookeeper
./bin/zkServer.sh start
2. 通过zk客户端连接刚才启动的zk服务
./bin/zkCli.sh
3. 创建一个节点测试一下有没有问题
create /test mytest
ls /test
get /test
getAcl /test
节点权限是world,也就是默认权限,为所有client端开放,这样肯定是不安全的,我们先基于auth模式进行权限的控制
3. auth加密形式(还是依赖以上创建的test节点进行权限控制)
4. 为节点创建auth权限认证方式(drawc为上述具体操作权限)
setAcl /test auth:user:123:drawc
5. 登陆解密流程
1. 创建用户上下文
addauth digest user:123
2. 设置登陆
setAcl /test auth:user:123:drawc
6. 现在看一下是否能访问得了该节点,发现是没有问题的,因为现在权限上下文中是包含user:123 的信息的
ls /test
7. 现在看一下/test节点的权限信息
getAcl /test
现在,成功的为节点设置了访问权限,清除一下上下文,再次进行访问,或者直接退出当前客户端重新登陆一下,访问/test节点,会发生什么
退出客户端
quit
重新连接客户端
./zkCli.sh
ls /test
8. 设置权限上下文
addauth digest user:123
9. 设置节点访问权限
setAcl /test auth:user:123:drawc
10. 访问test节点
get /test
会发现,可以正常进行访问,这就是auth权限的控制流程,接下来我们来说一下digest的访问控制
digest加密模式相对于auth来说要稍微麻烦一些,需要对要设置的密码进行BASE64(SHA1(password))的处理
搞起
delete /test
create /test mytest
get /test
echo -n user:password | openssl dgst -binary -sha1 | openssl base64
password替换为生成的base64的编码
setAcl /test digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:drawc
查看节点权限后访问一下,发现是访问不了的
getAcl /test
get /test
接下来设置一下权限再访问
addauth digest user:password
发现是可以正常访问的,没毛病老铁,这是digest模式的权限设置方式,接下来介绍一下ip的权限模式
还是刚才的test节点,删除后重新创建一个测试节点
delete /test
create /test mytest
get /test
设置节点访问权限为ip模式,现在有个小问题是在设置ip模式的时候呢,localhost是没办法设置的,所以本地要设置成127.0.0.1,所以我们在客户端连接zksercer的时候呢,要连接成127.0.0.1
连接上之后,命令行的前面可以看到,当前连接的ip是127.0.0.1
接下来对节点设置ip访问
setAcl /test ip:127.0.0.1:drawc,ip:192.168.1.2:drawc
这个ip如果设置的不是本地或者你的ip,是访问不到的,例如:
是不是没毛病。
最近每天晚上都两点睡,连续好几个月了,身体有点吃不消了,在这个经济下行的时代,想做点什么,想给有想法的大佬做舔狗