大佬教程收集整理的这篇文章主要介绍了Kafka“未在JAAS配置中指定登录模块”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有两种方法可以向Kafka客户端提供JAAS配置。
bootstrap.servers=(address)
zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=6000
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="(userName)" password="(password)";
security.protocol=SASL_PLAIntexT
sasl.mechanism=PLAIN
group.ID=(group)
如您所知,您可以--command-config
用来将属性文件传递给kafka-consumer-groups.sh
。
java.security.auth.login.config
。在这种情况下,将其设置为JAAS文件的路径。另外,如果您将其设置为KAFKA_OPTS
,kafka-consumer-groups.sh
则会自动将其拾取。export KAFKA_OPTS="-Djava.security.auth.login.config=(path)/consumer_jaas.conf"
与sasl
使用控制台脚本保护的Kafka通信时出现问题。Kafka受保护sasl
,监听器受保护SASL_PLAIntexT
,机制由PLAIN
。
我做了什么:我尝试使用kafka脚本之一列出一些数据:
bin/kafka-consumer-groups.sh --bootstrap-server (address) --list
但是我明白了
WARN Bootstrap broker (address) disconnected (org.apache.kafka.clients.NetworkClient)
命令失败,这是可以理解的,因为它由sasl保护。
因此,我尝试了如何向该命令添加客户端用户名/密码。首先,我尝试运行kafka-console-consumer
脚本,我曾经--command-
config
添加必要的文件。我很快发现我无法jaas
直接添加文件,我需要使用.properties
文件,所以我做到了。
我的属性文件(请记住,方括号表示“被检查”的数据,我不能在此处放置所有真实数据):
bootstrap.servers=(address)
zookeeper.connect=127.0.0.1:2181
zookeeper.connection.timeout.ms=6000
sasl.jaas.config=(path)/consumer_jaas.conf
security.protocol=SASL_PLAIntexT
sasl.mechanism=PLAIN
group.id=(group)
我的jaas文件:
KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username=(userName)
password=(password);
};
该jaas
文件可在我的标准Java应用程序中使用。
但是,当我尝试运行kafka-consumer-groups
script或时kafka-console-consumer
,出现此错误:
Exception in thread "main" org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentexception: Login module not specified in JAAS config
at org.apache.kafka.common.network.SaslChAnnelBuilder.configure(SaslChAnnelBuilder.java:94)
at org.apache.kafka.common.network.ChAnnelBuilders.create(ChAnnelBuilders.java:93)
at org.apache.kafka.common.network.ChAnnelBuilders.CLIENtChAnnelBuilder(ChAnnelBuilders.java:51)
at org.apache.kafka.clients.CLIENtUtils.createChAnnelBuilder(ClientUtils.java:84)
at kafka.admin.AdminClient$.create(AdminClient.scala:229)
at kafka.admin.AdminClient$.create(AdminClient.scala:223)
at kafka.admin.AdminClient$.create(AdminClient.scala:221)
at kafka.admin.ConsumerGroupCommand$KafkaConsumerGroupservice.createAdminClient(ConsumerGroupCommand.scala:454)
at kafka.admin.ConsumerGroupCommand$KafkaConsumerGroupservice.<init>(ConsumerGroupCommand.scala:389)
at kafka.admin.ConsumerGroupCommand$.main(ConsumerGroupCommand.scala:65)
at kafka.admin.ConsumerGroupCommand.main(ConsumerGroupCommand.scala)
Caused by: java.lang.IllegalArgumentexception: Login module not specified in JAAS config
at org.apache.kafka.common.security.JaasConfig.<init>(JaasConfig.java:68)
at org.apache.kafka.common.security.JaasUtils.jaasConfig(JaasUtils.java:59)
at org.apache.kafka.common.network.SaslChAnnelBuilder.configure(SaslChAnnelBuilder.java:85)
该jaas
文件是我在与kafka进行通信的java应用程序中使用的文件的直接副本,并且可以使用,但是在这里,使用控制台工具无法使用。我尝试寻找解决方案,但找不到任何有用的方法。
谁能帮我这个?
以上是大佬教程为你收集整理的Kafka“未在JAAS配置中指定登录模块”全部内容,希望文章能够帮你解决Kafka“未在JAAS配置中指定登录模块”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。