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>);
添加回答
举报