【发布时间】:2013-03-13 15:08:44
【问题描述】:
我想在多个服务器线程中使用多个 keytab。我不想使用 JAAS conf 文件,所以我在 LoginConfiguration 类中实现了我自己的登录配置。 KerberosLogin 类中的 getGSSCredentials() 函数用于通过将 keytab 位置作为参数来获取凭据。
Kerberos登录 -> http://ideone.com/vaip3H 登录配置 -> http://ideone.com/jDqlN0
当我只运行两个服务器线程时,第一个能够从其密钥表中获取凭据(两个服务器线程使用不同的服务主体),而第二个失败。在 LoginConfiguration 中以某种方式使用parms.put("refreshKrb5Config","true"); 解决了这个问题。
如果不刷新配置,我无法理解为什么它无法工作,并且对于存在多个此类服务器线程的情况,它是否可以安全使用。有没有更好的方法来使用多个 keytab?
【问题讨论】: