亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有 Kerberos 身份驗證的 PCF Kafka - 在本地運行但在 PCF 中失敗

具有 Kerberos 身份驗證的 PCF Kafka - 在本地運行但在 PCF 中失敗

慕碼人8056858 2023-05-24 17:33:52
使用 Kerberos 身份驗證通過 SpringBoot 連接到 Kafka 時遇到問題。我正在使用具有以下詳細信息的自定義 Kafka 連接管理器 -          bootstrap-servers-sasl: node1:9094, node2:9094, node3:9094          protocol: SASL_SSL          mechanism: GSSAPI          kerberos:            service:              name: kfkusr          jaas:             config: "com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true storeKey=true keyTab=\"#keytab-name#\" principal=\"abc/[email protected]\";"where#keytab-name#將在運行時被以下值替換為 -我的本地電腦 -C:/Users/MyPC/AppData/Local/Temp/abc.node2_d2254866264751402128.keytabPCF-/home/vcap/tmp/abc.node2_d2215947326380395062.keytab在本地應用程序運行良好,消息將發送到 Kafka。但是當在 PCF 上運行時失敗并出現以下異常 -2019-08-09T14:40:46.481-05:00 [APP/PROC/WEB/0] [OUT] WARN [9f-3868cbe47d81] org.apache.kafka.clients.NetworkClient o.a.k.c.NetworkClient.processDisconnection(NetworkClient.java:585) - ||||||||||||||Connection to node -1 terminated during authentication. This may indicate that authentication failed due to invalid credentials.......Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.: org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms......Exception thrown when sending a message with key='null' and payload='<my payload>' to topic <test_topic> :: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
查看完整描述

1 回答

?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

好的..我去解決這個問題..可能對其他被困在這個問題上的人有幫助。


首先,我在 Producer Config 屬性中設置了 krb5.conf 文件。該文件包含主機、領域的詳細信息以及使用 kerberos 發現服務所需的其他詳細信息


System.setProperty("java.security.krb5.conf",  <path to conf file>);

而不是直接在屬性中設置 jaas 配置,我創建了 jaas conf 文件并在系統屬性中設置它 -


在代碼是這樣的之前 -


props.put("sasl.jaas.config", jaasConfig);

更改后 -


System.setProperty("java.security.auth.login.config", jaasFile.getPath());

示例 Jaas 配置文件jaas_client.conf結構 -


KafkaClient {

com.sun.security.auth.module.Krb5LoginModule required

useKeyTab=true

storeKey=true

keyTab="#keytab-name#" 

principal="#principal#";

};

文件中的 PS ,我在更新到 keytab 文件的實際路徑和具有實際值的值jaas_client.conf之后重寫文件,然后設置為#keytab-name##principal#SystemProperties


當使用以下屬性啟用調試時,可以設置調試模式以查看 JaaS 身份驗證和票務日志 -


System.setProperty("sun.security.krb5.debug", ""+<true/false>);


查看完整回答
反對 回復 2023-05-24
  • 1 回答
  • 0 關注
  • 277 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號