我使用的是zookeeper 3.4.12版本,在尝试启用sasl时发现以下错误。有人能帮忙吗。
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
storeKey=true
useTicketCache=true
keyTab="/tmp/kafka/zookeeper.service.keytab
principal="zookeeper/chefclient.xyz.local@XYZ.LOCAL";
};
错误:
2018-11-02 09:35:01998]错误sasl身份验证使用登录上下文“client”失败,异常:{}(org.apache.zookeeper.client.zookeepersaslclient)javax.security.sasl.saslexception:使用zookeeper仲裁成员进行身份验证时出错:仲裁成员的sasltoken为null
4条答案
按热度按时间uqzxnwby1#
我也遇到了同样的问题。。。
zookeeper服务器日志中也存在此错误:
我的配置,在zookeeper示例之间使用相互kerberos身份验证。
解决方案
缺少“服务器”部分
我的问题是我没有
Server
部分出现在我的服务器jaas配置中。我需要这样的东西:
当客户端连接到zookeeper时,它们将根据
Server
此配置的一部分。这是sasl工作所必需的。还要确保你有
conf/java.env
设置如下内容:koaltpgm2#
我想问题是,你在这个时候少了一个双引号
o2gm4chl3#
zookeeper安全的第一步是保护仲裁对等通信。这里有完整的解释。
你的zookeeper jaas文件应该有quorumserver和quorumlearner部分。
接下来,您可以像kafka一样保护zookeeper集群和客户机之间的通信。这里有完整的解释
在zookeeper jaas文件中添加一个server部分,而kafka jaas文件应该有一个client部分
ubby3x7f4#
问题已经解决,jaas中的空格导致了问题