Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java windows计算机上的Kerberos缓存票证在用户解锁后未重新生成_Java_Windows_Active Directory_Kerberos_Jgss - Fatal编程技术网

Java windows计算机上的Kerberos缓存票证在用户解锁后未重新生成

Java windows计算机上的Kerberos缓存票证在用户解锁后未重新生成,java,windows,active-directory,kerberos,jgss,Java,Windows,Active Directory,Kerberos,Jgss,我有一个java服务器和客户端应用程序。这些应用程序正在windows计算机上运行。客户端使用kerberos身份验证登录服务器。它是使用jgssapi实现的 首先,客户端从系统中检索存储的缓存tgt票证,以从kdc生成令牌。 问题是-在windows中锁定用户会话(锁定屏幕或更改用户)后,系统中没有缓存的tgt票证(由C:\windows\System32\klist.exe检查)。 据我所知,我可以通过注销/登录计算机上的用户来获取它们 这个问题发生在我的客户机器上。锁定后,缓存票据的列表为

我有一个java服务器和客户端应用程序。这些应用程序正在windows计算机上运行。客户端使用kerberos身份验证登录服务器。它是使用jgssapi实现的

首先,客户端从系统中检索存储的缓存tgt票证,以从kdc生成令牌。 问题是-在windows中锁定用户会话(锁定屏幕或更改用户)后,系统中没有缓存的tgt票证(由C:\windows\System32\klist.exe检查)。 据我所知,我可以通过注销/登录计算机上的用户来获取它们

这个问题发生在我的客户机器上。锁定后,缓存票据的列表为空

我的办公室没有复制它(windows 7客户端,win server 2008上的active directory服务器)。在锁定之后,我总是在机器上有新的重新生成的缓存tgt票据(在锁定之前不是从工作中生成的,但它们在解锁之后再次生成)。没有为这种行为设置特殊的GPO(关于使用前一个用户会话的缓存票证的问题)

所以我不明白为什么系统在解锁后不重新生成缓存的tgt?怎么做

我在这里发现了类似的问题 答案之一是 “首先看一下您使用klist的情况,然后锁定和解锁屏幕。如果您有到DC的连接,您将获得到本地主机、KDC和TGT的服务票证,如果您没有连接,您将一无所获。”

已成功连接到AD。我可以打它。我可以使用AD explorer获取连接信息。或者与DC的连接不相同


谢谢。

JGSS和SSPI在一起打得不好。您可以只使用JGSS,然后通过JNA开始使用SSPI。

谢谢您的回答。使用SSPI API,如果在屏幕锁定后丢失了票证,则可以获得票证。它还可以解决在Windows中使用Oracle JRE的GSS-API实现的另一个限制,比如可以为本地管理员获取tgt票证。通过JNA调用SSPI函数的示例在华夫格源代码中。