0

我想在多个服务器线程中使用多个 keytab。我不想使用 JAAS conf 文件,所以我在 LoginConfiguration 类中实现了我自己的登录配置。KerberosLogin 类中的 getGSSCredentials() 函数用于通过将 keytab 位置作为参数来获取凭据。

KerberosLogin -> http://ideone.com/vaip3H LoginConfiguration -> http://ideone.com/jDqlN0

当我只运行两个服务器线程时,第一个能够从其密钥表中获取凭据(两个服务器线程使用不同的服务主体),而第二个失败。在 LoginConfiguration 中使用以某种方式parms.put("refreshKrb5Config","true");解决了这个问题。

我无法理解为什么在不刷新配置的情况下它不能工作,并且对于将有多个这样的服务器线程的情况,它是否可以安全使用。有没有更好的方法来使用多个 keytab?

4

1 回答 1

-1

这是由于 java6 处理登录配置的方式,它已在 java7 中修复。

于 2013-05-08T19:38:21.730 回答