[英]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.