我想在多个服务器线程中使用多个密钥表。我不想使用JAAS conf文件,所以我在LoginConfiguration类中实现了自己的登录配置。KerberosLogin类中的getGSSCredentials()函数用于通过给出密钥表位置作为参数来获取凭证。
KerberosLogin -> http://ideone.com/vaip3H LoginConfiguration -> http://ideone.com/jDqlN0
当我只运行两个服务器线程时,第一个线程能够从它的keytab (两个服务器线程使用不同的服务主体)中获得凭证,而第二个线程失败了。在LoginConfiguration中使用parms.put("refreshKrb5Config","true");以某种方式解决了这个问题。
我不能理解为什么它不刷新配置就不能工作,对于有几个这样的服务器线程的情况下,使用它是安全的。有没有更好的方法来使用多个键位?
发布于 2013-05-09 03:38:22
这是由于java6处理登录配置的方式,已在java7中修复。
https://stackoverflow.com/questions/15389064
复制相似问题