簡體   English   中英

Kafka Streams:JAAS 配置中未指定登錄模塊控制標志

[英]Kafka Streams: Login module control flag not specified in JAAS config

我正在嘗試使用 Java 運行我的 Kafka Streams 應用程序,並將我的 Confluent 憑據以 K、V 對的形式作為環境變量傳遞。

但我面臨一個錯誤問題,因為 -

- org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient 
Exception in thread "main" org.apache.kafka.common.KafkaException: Failed to create new KafkaAdminClient
Caused by: java.lang.IllegalArgumentException: Login module control flag not specified in JAAS config

這是我設置 Kafka 屬性的方式 -

Properties kafkaProps = new Properties();
kafkaProps.put(StreamsConfig.APPLICATION_ID_CONFIG, "MyKafkaApplicationV1.0.0");
kafkaProps.put(StreamsConfig.STATE_DIR_CONFIG, "tmp/state-store");
kafkaProps.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, System.getenv("bootstarpServers"));
kafkaProps.put(StreamsConfig.SECURITY_PROTOCOL_CONFIG, System.getenv("securityProtocol"));

kafkaProps.put(SaslConfigs.SASL_JAAS_CONFIG, System.getenv(SASL_JAAS_CONFIG));
kafkaProps.put(SaslConfigs.SASL_MECHANISM, System.getenv(SASL_MECHANISM));

這是我傳遞環境變量的方式 -

export saslJaasConfig=org.apache.kafka.common.security.plain.PlainLoginModule required username='MyUserName' password='MyPassword';
export saslMechanism=PLAIN

但是,如果我直接在屬性 object 中對 Creds 字符串進行硬編碼,例如 - kafkaProps.put(SaslConfigs.SASL_JAAS_CONFIG, "org.apache.kafka.common.security.plain.PlainLoginModule required username='MyUserName' password='MyPassword';"); 然后它正在工作並且沒有顯示錯誤。

請幫助我缺少什么。! 提前致謝。

您可以將 jass 配置作為 jvm 參數傳遞。請試試這個。

-Djava.security.auth.login.config=jaas_config.conf

jaas_config.conf 的內容

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="username"
    password="password";
 };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM