У меня была такая же проблема ...
SaslException: Error in authenticating with a Zookeeper Quorum member: the quorum member's saslToken is null
Эта ошибка также была в журнале Zookeeper Server:
ERROR [NIOWorkerThread-6:ZooKeeperServer@1191] - cnxn.saslServer is null: cnxn object did not initialize its saslServer properly.
Моя конфигурация, использующая взаимную аутентификацию Kerberos между экземплярами zookeeper.
Решение
Отсутствует раздел "Сервер"
Моя проблема заключалась в том, что у меня не было раздела Server
в моей конфигурации jaas сервера для Zookeeper.
Мне нужно что-то вроде:
QuorumServer {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
debug=false
principal="zookeeper/[email protected]";
};
QuorumLearner {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
debug=false
principal="zookeeper/[email protected]";
};
Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zookeeper.keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/[email protected]";
};
Когда клиенты подключаются к Zookeeper, они будут проходить аутентификацию в разделе Server
этой конфигурации. Это необходимо для работы SASL.
Также убедитесь, что у вас conf/java.env
установлено что-то вроде:
SERVER_JVMFLAGS="${SERVER_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/server-jaas.conf"
CLIENT_JVMFLAGS="${CLIENT_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/client-jaas.conf"
person
Ben DeMott
schedule
10.03.2020