当前位置: 首页 > 知识库问答 >
问题:

JAAS或Kafka配置中未定义serviceName(非Kerberos)

汪同
2023-03-14

我试图配置一个kafka客户端对一个安全的kafkaserver进行身份验证。我已经设置了jaas和ssl配置,但是它在抱怨serviceNames。

我没有使用Kerberos。

命令

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

错误

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

贾斯。形态

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"

共有1个答案

鲁熙云
2023-03-14

此错误表示您的kafka制作者看不到jaas配置。要解决这个问题,你要么需要包括

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

在您的ssl.properties文件中,或将其导出到您的路径中

export KAFKA_OPTS="-Djava.security.auth.login.config=path/to/jaas.conf"
 类似资料:
  • 问题内容: 与使用控制台脚本保护的Kafka通信时出现问题。Kafka受保护,监听器受保护,机制由。 我做了什么:我尝试使用kafka脚本之一列出一些数据: 但是我明白了 命令失败,这是可以理解的,因为它由sasl保护。 因此,我尝试了如何向该命令添加客户端用户名/密码。首先,我尝试运行脚本,我曾经添加必要的文件。我很快发现我无法直接添加文件,我需要使用文件,所以我做到了。 我的属性文件(请记住,

  • 我试图连接到Kafka使用汇流。Kafka包。但是,我需要使用jaas作为身份验证方法。我找不到使用融合的方法。Kafka为。NET. 编辑: 我收到以下数据连接: 我试图建立这样的联系: 你们知道我怎么设置收到的Jaas吗?

  • 我正在尝试使用Java运行我的Kafka Streams应用程序,并以K,V对的形式将合流凭证作为环境变量传递。 但是我面临着一个错误的问题- 下面是我如何设置Kafka属性的- 下面是我如何传递环境变量的- 但是如果我直接在properties对象中硬编码Creds字符串,比如-

  • 我在一个简单的Kafka消费程序中遇到了一些问题: 这些是我的财产: 我了解到这可能是一个与jaas相关的问题。但是我对Kafka还不熟悉,我不知道怎么找到它。。 你能帮帮我吗?谢谢你!

  • 我有一个spring boot kafka客户端应用程序,其中有两个消费者在kafka中收听不同的主题和不同的消费者群。 为了实现,我需要下面有两个JAAS会议(使用不同的keytab文件) dc-jaas-A.conf文件 dc-jaas-B.conf 由于下面的connect tFactory在System.setProperty中设置dc-jaas-A.conf和dc-jaas-B.conf