我想在多个服务器线程中使用多个keytabs。我不想使用JAAS conf文件,所以我在LoginConfiguration类中实现了自己的登录配置。 KerberosLogin类中的getGSSCredentials()函数用于通过将keytab位置作为参数来获取凭据。
KerberosLogin - > http://ideone.com/vaip3H LoginConfiguration - > http://ideone.com/jDqlN0
当我只运行两个服务器线程时,第一个能够从其keytab获取凭据(两个服务器线程使用不同的服务主体),而第二个失败。以某种方式在LoginConfiguration中使用parms.put("refreshKrb5Config","true");
解决了这个问题。
我无法理解为什么在没有刷新配置的情况下它不起作用,并且对于有几个这样的服务器线程的情况,它是安全的。有没有更好的方法来使用多个keytabs?
答案 0 :(得分:-1)
这是由于java6处理登录配置的方式,它已在java7中修复。