Kafka使用者拥有Wong协议时无声地失败

时间:2018-12-24 14:45:12

标签: security apache-kafka

我正在尝试在SASL_PLAINTEXT上保护Kafka。我通过遵循this link成功地做到了这一点,并且还使用新的Consumer代码对其进行了测试,并且效果很好:

  • 当用户名和密码正确时,它会收到消息。
  • 如果密码不正确,它将引发异常。

但是当我尝试测试旧的Consumer代码时,它默默地失败了,似乎得到了空的消息列表。

这两个代码的区别在这里(Java):

新代码具有这些额外的行:

props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
props.put("sasl.mechanism", "PLAIN");  // Looks like it is a bug of Kafka, need to manually set it      
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, KAFKA_BROKERS);
System.setProperty("java.security.auth.login.config", "C:/_program2/kafka_2.12-2.1.0/KafkaClient.txt");

KafkaClient.txt是标准的JAAS配置文件:

KafkaClient {
  org.apache.kafka.common.security.plain.PlainLoginModule required
  username="kafkaclient1"
  password="kafkaclient1-secret";
};

我的Kafka版本是2.12-2.1.0,我的JAVA是JDK8。 我最初的Kafka消费者Java代码来自this link

有人知道如何解决此问题吗? 谢谢!

0 个答案:

没有答案