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

Kafka Streams:未在JAAS配置中指定登录模块控制标志

戚祺
2023-03-14

我正在尝试使用Java运行我的Kafka Streams应用程序,并以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

但是如果我直接在properties对象中硬编码Creds字符串,比如-kafkaProps。put(SaslConfigs.SASL_JAAS_CONFIG,“org.apache.kafka.common.security.plain.PlainLoginModule所需用户名='MyUserName'password='MyPassword';” 然后它工作并且没有显示错误。

请帮助我错过了什么!!提前感谢。


共有1个答案

阎璞瑜
2023-03-14

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

  • 尝试在连接到Kafka时使用kerberos身份验证时遇到问题。使用scala和my看起来像这样。

  • 我正在通过camel从mqtt消费并试图发布到融合kafka,但当我生产到kafka时,我收到以下错误 我用于构建路由uri的camel配置如下所示 我遵循了这个链接Camel Kafka安全协议SASL_SASL不起作用试图将JAAS配置放在RAW中,但它不起作用,即使我尝试将此处提到的JAAS属性外部化,Kafka“Login module not specified in JAAS conf

  • 有人可以使用jaas登录模块吗。我在看医生 我想是这些登录模块可以1.与OS用户进行身份验证2.提供该用户的组。 基本上我想通过操作系统进行身份验证。输入用户名和密码 我想用windows进行身份验证 我不想做LDAP认证只做os认证。 对于windows,有华夫饼干库可用。但我无法在使用64位机器时进行身份验证。在32位上运行良好。 对于linux,有jpam,但它不提供组。它只会检查用户名、密

  • 更新:关于以下问题的一些上下文。我的目标是处理用户的请求,他们为每个请求提供一个Kafka主题。我使用部署在Bluemix上的MessageHub作为Kafka提供者。请求将传递代理URL、主题名称、用户名、密码和API密钥。Bluemix上的MessageHub需要JAAS身份验证,并提供具有不同LoginModule实现的登录模块。一些基于CallbackHandler,其他基于Credent

  • 我正在尝试开发一个定制的JAAS登录模块,它使用一个令牌并从不同的来源获取用户数据。它应该作为wildfly 8.2.1 final的身份验证领域。我有一个测试servlet,我想在其中进行身份验证,以便检查注入EJB的允许角色。 这个网站的测试:http://www.radcortez.com/custom-principal-and-loginmodule-for-wildfly/事实上,我甚