【问题标题】:ClassNotFoundException exception occurred: io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)发生 ClassNotFoundException 异常:io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)
【发布时间】:2022-01-17 22:35:49
【问题描述】:

代理启动失败,我可以看到以下错误:

INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
ERROR ClassNotFoundException exception occurred: io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)
INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
ERROR ClassNotFoundException exception occurred: io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)
INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
ERROR ClassNotFoundException exception occurred: io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)
INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
ERROR ClassNotFoundException exception occurred: io.confluent.kafka.security.config.provider.SecurePassConfigProvider (kafka.server.KafkaConfig)
INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
INFO KafkaConfig values:
----------------------------

我对@9​​87654323@ 文件中的一个属性(即ssl.truststore.password)进行了秘密设置,并尝试重新启动服务器并观察到上述错误。

任何帮助将不胜感激。谢谢!!!

---server.properties---
##
ssl.truststore.password = ${securepass:/home/secret/secrets.txt:server.properties/ssl.truststore.password}

config.providers = securepass
config.providers.securepass.class = io.confluent.kafka.security.config.provider.SecurePassConfigProvider

Confluent Community version used - 5.5.2

【问题讨论】:

  • 您确定该类存在于版本 5.5.2 中吗?您是否为该课程下载了任何额外的安全 JAR?
  • Confluent v5.5.2 文档中提到了 io.confluent.kafka.security.config.provider.SecurePassConfigProvider (ref# https://docs.confluent.io/5.5.2/security/secrets.html#using-prefixes-in-secrets-configurations) 类,所以该类应该在包中可用。这是我的理解。

标签: apache-kafka confluent-platform apache-kafka-security


【解决方案1】:

Confluent Platform 5.5.2 社区版没有这个类...

$ find ./confluent-5.5.2 -name 'kafka-client-plugins*.jar'

在此处下载文件并确保它位于 Kafka 代理类路径中,例如/usr/share/java/kafka 如果直接安装到操作系统,或 Confluent 压缩包的 share/java/kafka 文件夹。

https://packages.confluent.io/maven/io/confluent/kafka-client-plugins/5.5.2-ce/kafka-client-plugins-5.5.2-ce.jar

通过验证

$ jar -tf kafka-client-plugins-5.5.2-ce.jar| grep SecurePassConfigProvider
io/confluent/kafka/security/config/provider/SecurePassConfigProvider.class

总体而言,如果有人可以访问您的代理的文件系统,您就会遇到更大的问题,并且通过直接引用另一个文件来隐藏文件并不“安全”

【讨论】:

  • 非常感谢。但这是使用这两个配置参数的正确方法吗?在server.properties 中加密密码?
  • 另外这个jar来自confluent enterprisepackages.confluent.io/maven/io/confluent/kafka-client-plugins5.5.2-ce/kafka-client-plugins-5.5.2-ce.jar 将它包含在社区版本中是否安全?因为我没有使用企业版?
  • ce 表示社区版,IIRC。 ccs 用于 Confluent/Cloud Server(或企业)
  • 嗯,不,倒过来了。 docs.confluent.io/platform/current/installation/…我的意思是,你可以试试。通常,企业软件包的唯一限制是它们需要定义许可主题,但我在此插件文档中看不到这一点
猜你喜欢
  • 2020-05-27
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 2021-09-18
相关资源
最近更新 更多