Hadoop
中的ZooKeeper
添加了kerberos
认证,写的代码需要操作Hadoop
中的ZooKeeper
,因此代码需要进行认证才能操作ZooKeeper
。
spring boot 项目进行认证
项目不需要进行任何修改和添加,在启动参数中加入认证即可,认证方式和Hbase
的kerberos
认证不一样,所以实现方式也不一样。
# -Dsun.security.krb5.debug=true 开启认证调试日志,这样有助于分析认证失败原因,可以达到事半功倍的效果
# -Djava.security.auth.login.config=./jaas.conf 这是zookeeper的认证文件
java -jar -Djava.security.auth.login.config=./jaas.conf -Dsun.security.krb5.debug=true demo.jar
tomcat 项目进行认证
# tomcat 进行认证需要进行配置到 catalina.sh 中
CATALINA_OPTS="$CATALINA_OPTS-Djava.security.auth.login.config=./jaas.conf"
CATALINA_OPTS="$CATALINA_OPTS -Dsun.security.krb5.debug=true"
重启项目即可进行认证。
ZooKeeper kerberos
在使用jaas.conf
文件中要注意,此文件分为服务端和客户端的配置文件,不能给错了,如果使用错误也是不能进行认证,keytab
也是不一样的,用错了也是不能进行认证通过的。
# 服务端
Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/zookeeper/conf/zookeeper.keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/cdh1@JAVACHEN.COM";
};
# 客户端
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/zookeeper/conf/zkcli.keytab"
storeKey=true
useTicketCache=false
principal="zkcli@JAVACHEN.COM";
};