客户端重新启动后,带有Java7的Kerberos SSO在几分钟内不工作

客户端重新启动后,带有Java7的Kerberos SSO在几分钟内不工作,java,windows,tomcat,active-directory,kerberos,Java,Windows,Tomcat,Active Directory,Kerberos,我们有一个支持Kerberos SSO的产品,它在Java7下的Tomcat容器中运行。它通常可以工作,但当客户端(某些Windows机箱)刚刚重新启动时,SSO需要几分钟才能重新工作。 为什么呢?有办法解决这个问题吗?至少在windows中,操作系统本身管理一个名为MSLSA的缓存。Windows自动获取它的SSO票证。我猜windows中的守护进程需要一段时间才能拿到罚单。这是一个很好的猜测,我怀疑类似的事情。但是,我忘了提到类似的应用程序没有这个问题,我一辈子也弄不清楚区别是什么。可能你的

我们有一个支持Kerberos SSO的产品,它在Java7下的Tomcat容器中运行。它通常可以工作,但当客户端(某些Windows机箱)刚刚重新启动时,SSO需要几分钟才能重新工作。
为什么呢?有办法解决这个问题吗?

至少在windows中,操作系统本身管理一个名为MSLSA的缓存。Windows自动获取它的SSO票证。我猜windows中的守护进程需要一段时间才能拿到罚单。这是一个很好的猜测,我怀疑类似的事情。但是,我忘了提到类似的应用程序没有这个问题,我一辈子也弄不清楚区别是什么。可能你的应用程序根本不依赖windows获取的票证,而且通过某种方式获取自己的票证。你能告诉我这个应用程序是什么吗?它可能是通过编程获得的。我写了一些这样做的软件,因此值得一试。该应用程序使用Java GSSAPI和Kerberos实现,以及所有随附的标准Java.login.config和krb5.ini内容。除非您的代码使用LoginContext login(),否则您永远无法自己获取tgt。然后,您将依靠操作系统为您获取它。否则它将获取TGT。GSSAPI只关心服务票。