java - Camel-Kafka 安全协议(protocol) SASL_PLAINTEXT 不支持

标签 java apache-kafka apache-camel kerberos cloudera

我需要使用 Camel 使用身份验证协议(protocol) Kerberos 将 ActiveMQ 消息路由到 Kafka(Cloudera)。

  • ActiveMQ v5.15.4
  • Camel :2.21.1
  • Kafka 客户端:1.1.0
  • 服务器版本:Apache/2.4.6(CentOS)

Kafka 安全文档声明它仅支持 SASL_PLAINTEXT
SASL_SSL 用于 Kerberos

另一方面,当我尝试在 Camel 中使用 SASL_PLAINTEXT 安全协议(protocol)时,我在 ActiveMQ 启动期间收到错误。因此 ActiveMQ 将无法启动。

我从以下位置获取了最新的Camel代码:https://github.com/apache/camel.git并且它声明它仅支持 SSLPLAINTEXT 作为安全协议(protocol)值。

我确实发现这个已解决的问题:https://access.redhat.com/solutions/3364871但我没有找到任何证据表明这在最新的 Camel 版本中有效。

我的 Camel 设置片段是:

<log message="Started The Producer Route" />
<to uri="kafka://10.100.70.00:9092?topic=MyEvents.s1.v1&amp;brokers=10.100.70.00:9092&amp;requestTimeoutMs=305000&amp;retries=3&amp;keySerializerClass=org.apache.kafka.common.serialization.ByteArraySerializer&amp;saslMechanism=GSSAPI&amp;serializerClass=org.apache.kafka.common.serialization.ByteArraySerializer&amp;securityProtocol=SASL_PLAINTEXT&amp;saslKerberosServiceName=kafka"/>

我正在使用外部 Jaas 配置文件。

Camel 真的不支持 SASL_PLAINTEXT 吗?

最佳答案

Camel 支持 SASL_PLAINTEXT,因为它使用 Kafka 客户端 v1.1.0。问题是实际的安全参数没有传播到 Camel 接口(interface)。这意味着 ActiveMQ 启动期间无法识别该参数。 我已经打开issue对于这个问题。

关于java - Camel-Kafka 安全协议(protocol) SASL_PLAINTEXT 不支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51005383/

相关文章:

java - Camel 从 Tracer 到 BacklogTracer

java - Apache 配置 - 处理同名的多个 XML 条目

Java 我的 HttpsURLConnection.connect 失败,除非主机名完全正确?

ssl - 启用 SASL、SSL 或 SASL_SSL 时 GCS 连接器失败

java - 无法反序列化压缩的 Protocol Buffer

java - 重启Camel上下文时Http连接池关闭

java - 对 C/C++ 对象和 C/C++ 对象对 Java/Objective C 的 JSON 响应

javascript - 网络应用程序-是否可以禁用 Windows+Printscreen?

ubuntu - 在 Docker Ubuntu 镜像上运行 Confluent 启动命令时 Kafka 无法启动(名称或服务未知)

java - Apache Camel - 转换中的 MethodNotFoundException