🍀SpringBoot:项目集成 Kafka 启动报错
kafka 生产消费使用kerberos认证情况(9094端口)启动报错:
Caused by: v11.org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner authentication information from the user
at v11.org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:125)
at v11.org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:140)
at v11.org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:65)
at v11.org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:88)
at v11.org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:413)
... 73 common frames omitted
Caused by: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner authentication information from the user
at com.chinawayltd.op.common.gmq.login.Krb5LoginModule.promptForPass(Krb5LoginModule.java:707)
v11.org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:52)
at v11.org.apache.kafka.common.security.kerberos.KerberosLogin.login(KerberosLogin.java:98)
at v11.org.apache.kafka.common.security.authenticator.LoginManager.<init>(LoginManager.java:53)
at v11.org.apache.kafka.common.security.authenticator.LoginManager.acquireLoginManager(LoginManager.java:95)
at v11.org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:114)
... 77 common frames omitted
原因:java8u351 之后默认屏蔽了DES等弱密码算法,导致认证不通过
解决:
安装
java8u351
之后的 JDK 版本,但我的电脑是 MacM2 芯片的,支持的最早的也在这边这个版本之后,所以方法对我的电脑不适用;在
krb5.conf
文件的 [libdefaults] 节添加下面的配置,允许 JDK 使用弱密码算法
License:
CC BY 4.0