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

如何将用户名和密码传递给KafkaConsumer?

锺离霖
2023-03-14

我找不到如何将用户名和密码传递给KafkaConsumer。我使用SASL明文对Kafka服务器上的客户端进行身份验证。

我试图在上找到此信息https://kafka.apache.org/documentation/#consumerconfigs但结果是否定的。

我发现了一些作者使用参数“用户名”和“密码”的例子。我试图这样做:

props.put("bootstrap.servers", uri.getHost() + ":" + uri.getPort());
if (!groupidName.isBlank())
    props.put("group.id", groupidName);
props.put("enable.auto.commit", "false");
props.put("auto.offset.reset", groupidName.isBlank() ? "latest" : "earliest");
props.put("session.timeout.ms", "30000");
props.put("max.poll.records", "1");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
if (kafkaConnector.getConfig().getUserName() != null && kafkaConnector.getConfig().getPassword() != null)
{
    props.put("security.protocol","SASL_PLAINTEXT");
    props.put("sasl.mechanism","PLAIN");
    props.put("username",kafkaConnector.getConfig().getUserName());
    props.put("password",kafkaConnector.getConfig().getPassword());
}

但我得到了例外"未能构建Kafka消费者"。

如果有人知道如何将用户名和密码传递给消费者配置,请提供帮助。

共有1个答案

夹谷星河
2023-03-14

您必须设置属性sasl的值。贾斯。配置

我们的工作如下:

props.put("security.protocol", "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");
props.put("sasl.jaas.config", PlainLoginModule.class.getName() + " required username=\"" + KAFKA_USER + "\" password=\"" + KAFKA_PASSWORD + "\";")
 类似资料:
  • 问题内容: 帐户要求我发送出站邮件的用户名和密码。 我如何在执行时使用它该文件仅包含服务器和的条目。 问题答案: 我将以下详细信息应用于php.ini文件。它的作品很好。 这些详细信息与Outlook设置相同。

  • 问题内容: 我知道不推荐这样做,但是是否可以将用户密码传递给scp? 作为批处理作业的一部分,我想通过scp复制文件,接收服务器当然需要密码,不,我不能轻易地将其更改为基于密钥的身份验证。 问题答案: 您就可以使用一个工具脚本它预期(有得心应手绑定太像Pexpect的为Python)。

  • 问题内容: 我想通过bash脚本传递密码(是的,我知道我可以使用ssh密钥,但这不是我想要的)。 我发现了一些正在使用的解决方案,但由于它不是标准的bash工具,所以我想知道是否可以使用管道来实现。 有人可以向我解释为什么是这样的: 要么 不起作用?有可能使其工作吗?也许以不同的进程执行,获取其PID,然后直接向其发送字符串? 问题答案: 由于我的问题没有确切的答案,因此我进行了一些调查,为什么当

  • 对于一些要求,我需要从登录页面的用户给定的用户名和密码。( 但是,我无法设法进入以下SecurityConfig的配置方法。 @EnableWebSecurity公共类SecurityConfig扩展WebSecurity配置适配器{

  • 问题内容: 我遇到了一些问题,无论何时渲染视图,我都试图发送一个对象供我的Javascript客户端使用。我以这种方式发送(我正在使用车把) //然后在我的视图中,在脚本标签内,我尝试获取该var并进行打印 结果是这样的: 而且我不能使用它的任何属性,因为它是未定义的 问题答案: 您可以将对象作为字符串发送。 喜欢 在客户端,您可以解析它以获取对象 喜欢 现在您可以使用loc作为对象。

  • 问题内容: 当我转到mydomain.com:8080时,默认情况下没有授权机制。我看过配置区域,但是找不到任何地方来添加基本的用户名和密码 问题答案: 转到 管理Jenkins >配置全局安全性,_然后选择 _启用安全性 复选框。 对于基本的用户名/密码认证,我会建议选择 詹金斯自己的用户数据库 在安全领域,然后选择 登录用户可以做任何事情 的或基于矩阵策略(在当你有多个用户以不同的权限的情况下