构建一个SPI将事件推送到Kafka中,在Keycount 6.0.1中部署为EAR,它使用WildFly Server,打包在基于jboss/keycount:6.0.1的Docker映像中。
我碰到了:找不到Kafka Producer-org . Apache . Kafka . common . serialize . string serializer
因此,我应用了设置Thread.currentThread().setContextClassLoader(null)
。
这对于我在端口9092上的本地Kafka来说似乎很好,无需身份验证。一旦我按照此处所述进行身份验证:
String jaasTemplate = "org.apache.kafka.common.security.scram.ScramLoginModule required username=\"%s\" password=\"%s\";";
String jaasCfg = String.format(jaasTemplate, username, password);
Properties props = new Properties();
props.put("sasl.jaas.config", jaasCfg);
// ...
Thread.currentThread().setContextClassLoader(null);
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
我遇到了错误:
org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: unable to find LoginModule class: org.apache.kafka.common.security.scram.ScramLoginModule
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:160)
at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:146)
at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67)
at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99)
at org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:441)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:422)
我怀疑这是由于将类加载器设置为
空引起的
,但我不确定。
JAAS字符串提到这个
org.apache.kafka.common.security.scraf.ScramLoginModule
。我尝试不使用JAAS,而是使用简单的用户名密码,如下所示:
Properties props = new Properties();
props.put("sasl.username", username);
props.put("sasl.password", password);
// ...
Thread.currentThread().setContextClassLoader(null);
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
但这也导致了一个例外,仅提及无法找到不同的类:
org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: unable to find LoginModule class: org.jboss.as.security.remoting.RemotingLoginModule
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:160)
at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:146)
at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67)
at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99)
at org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:441)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:422)
我如何才能做到,
org.apache.kafka.common.security.scrab。是否找到ScramLoginModule
?谢谢
警告:丑陋的黑客!
在创建KafkaProducer之前,设置如下所示的上下文类加载器:
Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
说明 调用方法: $.f2e.util.yy.isInstallYY(fn); 函数说明: UDB登陆 参数说明: 参数名 类型 说明 备注 fn function 回调函数 null为未登录YY客户端 无 脚本 <script> $.f2e.util.yy.isInstallYY(function(data){ if(data){ //有登录
我正在保护Kafka与Kerberos在CDH 5.5Kafka版本:2.0.1Kerberos启用和工作正常 当我使用cloudera maneger在kafka中启用sasl时,会出现以下错误: 6月29日,3:02:42.875下午信息组织。阿帕奇。动物园管理员。客户CNXN 正在打开与服务器brahim的套接字连接。localhost/127.0。0.1:2181. 将尝试使用登录上下文部
我有一个老项目,这是试图从谷歌分析检索数据。 它不起作用,所以我试图找出问题所在。 找到了在服务器端使用分析的示例代码。 它与我的测试帐户的秘密文件一起工作。但是它对一个老项目的秘密文件不起作用。我收到以下错误: 有什么问题?机密文件已过期?如果是,我可以在没有访问谷歌帐户的情况下收到另一个吗?
web应用程序的单点登录(SSO)(通过浏览器使用)已得到充分的证明和确立。为富客户端建立SSO比较困难,通常建议基于Kerberos票证,尤其是使用Windows登录域中的ActiveDirectory。 但是,我正在为以下问题寻找一个更通用的解决方案:我需要建立“真正的”SSO(所有应用程序的一个标识,即不仅仅是跨应用程序的密码同步),其中在客户端(非托管计算机,包括非Windows),“最终
我正试图找出如何创建一个工作Kafka生产者对一个AWS MSK集群。集群启用了TLS和SASL/scram。这是我第一次使用Kafka,关于这方面的文档相当少。我目前拥有的针对未加密本地群集的代码是: 我有字符串类型变量和,它们是从AWS秘密管理器中提取的,包含集群的用户名和密码。我还需要指定哪些其他属性? AWS和Kafka网站上的文档都是关于在本地文件系统上生成JAAS和truststore
我有一个用python实现的gRPC服务器,我正在从NodeJS调用RPC,但它给出了一个错误“找不到方法”。当我使用python客户端调用时,请求成功。 导入grpc import stream\u csv\u pb2 import urllib。来自urllib的请求。从并发导入期货导入HTTPError时出错,URLError