zookeeper默认不开启认证,只要你的应用到zookeeper之间网络通即可连接,存在一定风险。
版本:
zookeeper 3.1.14
java端zookeeper jar版本3.4.8
增加认证配置步骤:
1、进入zookeeper-3.4.14/bin/, 执行./zkCli.sh
2、执行ls /, 可以查看当前zookeeper下的节点, 接下来要针对节点设置认证, 假设有temp节点。
3、增加授权用户:addauth digest username:password。 username和password替换为用户名和密码。
4、增加授权节点权限:setAcl /temp auth:username:password:rwadc
rwadc
:这是权限字符串,表示授予读取 (r
)、写入 (w
)、创建 (c
)、删除 (d
) 和管理 (a
) 权限。
5、查看授权节点权限:getAcl /temp
可能会出现Authentication is not valid : /temp的报错, 原因为zkCli会话关闭后, 重新连接后要访问/temp是要认证身份, 方式为:addauth digest username:password。 认证通过后就可以访问了。
dubbo配置:
需要在pom中引入:
<!--curator-->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
dubbo.xml中需配置
<dubbo:registry address="${dubbo.registry.address}" check="false" file="false" client="curator" username="${dubbo.registry.username}" password="${dubbo.registry.password}"/>
zookeeper地址和用户名密码,换成你自己的即可。
这样不管通过dubbo还是其他方式访问zookeeper下的/temp都需要认证, 提高安全性。