No serviceName defined in either JAAS or Kafka config (not Kerberos)

I'm trying to configure a kafka client to authenticate against a secure kafkaserver. I've set up the jaas and ssl configs, but it's complaining about serviceNames.

I am not using Kerberos.

command

KAFKA_OPTS="-Djava.security.auth.login.config=./jaas.conf" \ kafka-console-producer --broker-list k0:9092,k1:9092,k2:9092 \ --topic test-topic --producer.config ./ssl.properties 

error

org.apache.kafka.common.KafkaException: Failed to construct kafka producer at org.apache.kafka.clients.producer.KafkaProducer.<init> [ ... ] Caused by: java.lang.IllegalArgumentException: No serviceName defined in either JAAS or Kafka config 

jaas.conf

KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required serviceName="kafka" password="broker-secret" user_broker="broker-secret" sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN confluent.metrics.reporter.sasl.mechanism=PLAIN user_username1="password1"; }; 

ssl.properties

bootstrap.servers=k0:9092,k1:9092,k2:9092 security.protocol=SASL_PLAINTEXT ssl.truststore.location=/var/ssl/private/client.truststore.jks ssl.truststore.password=confluent ssl.keystore.location=/var/ssl/private/client.keystore.jks ssl.keystore.password=confluent ssl.key.password=confluent producer.bootstrap.servers=k0:9092,1:9092,k2:9092 producer.security.protocol=SASL_PLAINTEXT producer.ssl.truststore.location=/var/private/ssl/kafka.client.truststore.jks producer.ssl.truststore.location=/var/ssl/private/client.truststore.jks producer.ssl.truststore.password=confluent producer.ssl.keystore.location=/var/ssl/private/client.keystore.jks producer.ssl.keystore.password=confluent producer.ssl.key.password=confluent org.apache.kafka.common.security.plain.PlainLoginModule required password="broker-secret" user_broker="broker-secret" sasl.enabled.mechanisms=PLAIN sasl.mechanism.inter.broker.protocol=PLAIN confluent.metrics.reporter.sasl.mechanism=PLAIN user_username1="password"; serviceName="Kafka" 
2

1 Answer

This error indicates that jaas configuration is not visible to your kafka producer. To solve this issue, you either need to include

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="(username)" password="(password)"; 

in your ssl.properties file, or export it in your path

export KAFKA_OPTS="-Djava.security.auth.login.config=path/to/jaas.conf" 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like