java - 如何在我的 Spring 应用程序中添加 SASL 身份验证
问题描述
我有一个使用 Kafka 实例而没有任何身份验证的 Spring 应用程序。
现在情况发生了变化,Kafka 离开了应用程序并作为集群运行。我收到了 Kafka Credential 用户名和密码以及主机名:端口信息。
我需要什么其他信息才能连接到 Kafka 集群。
是否需要任何代码更改?还是我只需要在 application-profile.yaml 文件中添加一些信息?
我尝试了谷歌建议的不同方法,但似乎对我没有用,我不断得到:
错误:
打开与服务器 X1.X2.X3.X4/X1.X2.X3.X4:2181 的套接字连接。不会尝试使用 SASL 进行身份验证(未知错误)
hequeue:
#To use local kafka, update use-mock-queue to false and add local zkservers and metadata-broker-list
use-mock-queue: false
zkservers: X1.X2.X3.X4:2181,Y1.Y2.Y3.Y4:2181,Z1:Z2:Z3:Z4:2181
metadata-broker-list: X1.X2.X3.X4:9092,Y1.Y2.Y3.Y:9092,Z1:Z2:Z3:Z4:9092
properties:
sasl:
jaas:
config: org.apache.kafka.common.security.scram.ScramLoginModule required username='ANKIT' password='KOTAK';
mechanism: SCRAM-SHA-256
kerberos:
service:
name: kafka
security:
protocol: SASL_SSL
解决方案
以下是我们如何使用 spring kafka 的示例配置之一。如果匹配,您可以尝试:
spring:
kafka:
bootstrap-servers:
consumer:
properties:
isolation.level:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name:
producer:
properties:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name:
admin:
properties:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name: kafka
推荐阅读
- javascript - 如何将文件从 JS 应用程序保存到 iCloud?
- sql - 如何在视图中包含 OPENJSON?
- excel - 搜索第二个工作簿并返回行值
- go - 为什么我的删除对使用 golang gorm 的相关表不起作用?
- office-js - 是否可以使用 Officejs 处理消息读取时的消息正文
- python - 如何通过 python 和 IMAP 删除超过 2 天的电子邮件?
- elasticsearch - Elasticsearch 未分配的分片 CircuitBreakingException[[parent] 数据太大
- sql - Oracle SQL Developer 限制数据类型 char(5) 的字符数
- bash - 从第二个 CSV 文件中删除 CSV 中的条目
- linux - Docker 层不存在