[英]Configuration of 'sasl.jaas.config' when you have 2 separate topics, each having separate connection key?
當您有 2 個單獨的主題(每個主題都有單獨的連接密鑰)時,我正在尋找有關sasl.jaas.config
配置的說明? 我正在使用spring-cloud-starter-stream-kafka
3.1 版。 我沒有使用spring-cloud-stream-binder-kafka
,我不知道這是否能解決我的問題。
當只涉及一個主題時,我可以找到很多示例,使用消費者繼承的“ spring.cloud.stream.kafka.binder.configuration
中的通用配置進行連接。
我有一個場景,我有一個輸入和 output ,它們都是各自獨立的主題,我想在 .yml 中配置它。 這可能是 via.yml 配置嗎?
我最好的猜測是嘗試配置密鑰spring.cloud.stream.bindings.input.configuration.sasl.jaas.config
但該配置似乎不存在,是嗎?
這是我最好的猜測,但它不正確,因為它不起作用:
spring:
...
cloud:
stream:
kafka:
binder:
brokers: ...
defaultBrokerPort: 9093
auto-create-topics: true
configuration:
security.protocol: SASL_SSL
sasl:
mechanism: PLAIN
bindings:
eeoi-sink:
consumer:
enableDlq: false
dlqName: input_dlq
ackEachRecord: true
autoCommitOffset: false
bindings:
eeoi-sink:
destination: input
contentType: application/json
group: $Default
consumer:
max-attempts: 1
configuration:
sasl:
jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="...";
acknowledgement-source:
destination: output
contentType: application/json
group: $Default
configuration:
sasl:
jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="...";
spring.cloud.stream.bindings.input.configuration.sasl.jaas.config
將不起作用。 正確的屬性鍵是spring.cloud.stream.kafka.bindings.input.consumer.configuration.sasl.jaas.config
。
如果要使用單獨的 jaas 配置,則需要使用多綁定器設置。 有關一些想法,請參閱此應用程序: https://github.com/spring-cloud/spring-cloud-stream-samples/blob/master/multi-binder-samples/kafka-multi-binder-jaas/src/main/resources /應用程序.yml
在此示例中,它為binder 提供 jaas 配置,您可以簡單地將其替換為binder.configuration.sasl.jaas.config
。
將相同的 Kafka 集群用作兩個 binder 設置的代理,但jaas
配置不同。
但是,我認為您遇到的問題是不同的。 您的jaas
配置最終被委托給 java 安全配置,該配置根據 JVM 保留jaas
配置的 static 副本。 因此,在 JVM 中靜態設置后提供的任何jaas
配置都將被忽略。
有關相關問題的更多詳細信息,請參閱此: https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/874
此問題提供了一些解決此問題的方法。 一種是使兩個主題的連接字符串、密碼等相同,這樣,使用相同的jaas
配置值。 這可能不是一個理想的解決方案,並且首先破壞了不同憑據的目的。 上述示例有效的原因是我們在兩個活頁夾中使用了相同的用戶名/密碼組合。
另一種選擇是將應用程序分成兩部分。 這樣,每個主題的jaas
配置都駐留在不同的應用程序中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.