[Kafka] 命令行生产消息报错 Could not find a ‘KafkaClient’ entry in the JAAS configuration

内容纲要

概要描述


该问题多出现在 TDH 4.x 的 kafka 中,当集群开启了 guardian kerberos 后,需要先认证再生产消息,jaas.conf 配置的不完整,即会报如下错误:

Caused by: org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is ......

详细说明


检查 jaas.conf 文件内容,可发现默认的只有 KafkaServerClient 两个部分,而报错可以明显看出是缺少 KafkaClient;所以直接在 jaas.conf 中新增 KafkaClient 部分,内容直接用 KafkaServer 的即可,换一个名字就行。

如:

KafkaServer {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/etc/kafka1/conf/kafka.keytab"
  storeKey=true
  useTicketCache=false
  principal="kafka/jiujiu-tdh-60@TDH";
};

// Zookeeper client authentication
Client {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  storeKey=true
  useTicketCache=false
  keyTab="/etc/kafka1/conf/kafka.keytab"
  principal="kafka/jiujiu-tdh-60@TDH";
};

// Kafka Client
KafkaClient {
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/etc/kafka1/conf/kafka.keytab"
  storeKey=true
  useTicketCache=false
  principal="kafka/jiujiu-tdh-60@TDH";
};

案例直接在文件最后按 KafkaServer 添加了 KafkaClient,然后再使用 kafka 的 CLI 生产消息正常。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。