configuration - 卡夫卡 : Update jaas config dynamically

标签 configuration apache-kafka jaas broker

我已经使用 sasl.jaas.config 属性为 kafka 设置了 jaas 配置。我想更新此配置并动态添加用户。

根据此文档 - http://kafka.apache.org/11/documentation.html#dynamicbrokerconfigs ,我们可以使用 bin/kafka-configs.sh 来做到这一点。

上面的文档有配置栏,如下所示 - enter image description here

我已尝试使用以下命令更新 sasl.jaas.config:

bin/kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers --entity-name 59 --alter --add-config sasl.jaas.config="KafkaServer {\n org.apache.kafka.common.security.plain.PlainLoginModule 需要\n 用户名=\"myuser\"\n 密码=\"mypassword\";\n};\nClient {\n org.apache.zookeeper.需要 server.auth.DigestLoginModule\n username=\"myuser2\"\n password=\"mypassword2\";\n};"

但它给了我以下错误:

要求失败:实体配置无效:所有要添加的配置必须采用“key=val”格式

如果我查看上面的列,它表示 sasl.jaas.config 属性值的格式是 (=)*。这是什么意思?

应该如何传递“sasl.jaas.config”的值来动态更新 jaas 配置?

最佳答案

虽然可以动态更新 sasl.jaas.config 以添加更多用户,但默认的 Plain 登录模块并不打算在生产中使用。

相反,您应该定义回调处理程序来处理用户身份验证。这在 Kafka Sasl Plain docs 中有描述。 .

另一个需要更多工作(但提供更多灵 active )的选项是创建您自己的登录模块。 Can Kafka be provided with custom LoginModule to support LDAP? 中描述了该过程


关于您收到的错误消息,这似乎是 kafka-config.sh 工具的问题。它不期望配置值包含 =。您应该能够使用 AdminClient API 更新该配置。

我在 JIRA 中找不到现有问题,因此创建了一个新问题:https://issues.apache.org/jira/browse/KAFKA-8010

关于configuration - 卡夫卡 : Update jaas config dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54900529/

相关文章:

java - KafkaProducer 连接被拒绝

jakarta-ee - JAAS LoginModule 在 Websphere Liberty 中不起作用

java - 在spring boot中从属性文件注入(inject)值数组

java - Spring 3 依赖注入(inject)和接口(interface)

java - Apache Kafka 获取特定主题的消费者列表

java - JAAS - Tomcat 上的 Web SSO 集成

java - JAAS 异常空用户名和密码

c# - .NET Core 2.2 下配置中 AddJsonFile 选项的默认值是什么?

ASP.NET web.config : configSource vs. 文件属性

apache-kafka - kafka key 的最大长度是多少?