Kafka-在JAAS配置中找不到“ KafkaClient”条目

时间:2019-07-12 20:01:57

标签: java apache-kafka druid

用例:尝试集成Kafka和Druid,以通过KafkaClient将数据从Kafka加载到Druid。

当我们尝试相同时,我们正面临着这个问题。请查找详细信息,并帮助我解决同样的问题。

问题:

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 not set
        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 org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:657) ~[?:?]
        ... 10 more
Caused by: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set

JAAS Conf文件:

KafkaClient {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/hadoop_shared/net/bdnetflow.headless.keytab"
       debug=true
       storeKey=true
       useTicketCache=false
       serviceName="kafka"
       principal="bdnetflow@HDP_PRD.COX.COM";
};
Client {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/hadoop_shared/net/bdnetflow.headless.keytab"
       debug=true
       storeKey=true
       useTicketCache=false
       serviceName="kafka"
       principal="bdnetflow@HDP_PRD.COX.COM";
};

1 个答案:

答案 0 :(得分:0)

应用程序必须知道Jaas文件的位置,如上面的注释所述。

您可以通过两种方式指定安全配置文件:

  • 命令行。

使用-Djava.security.auth.login.config命令行参数。例如,如果您要运行自己的jaas来运行程序,

java -Djava.security.auth.login.config=/path/to/yourJaas.conf -jar yourExe.jar
  • Java安全属性文件。

安全属性文件是位于 JRE lib / security 目录中的java.security文件。

您可以在安全属性文件中将其URL指示为login.config.url.n属性的值,例如:

login.config.url.1=/path/to/yourJaas.conf

有关更多信息,请在此处查看:https://docs.oracle.com/javase/10/security/java-authentication-and-authorization-service-jaas-reference-guide.htm