我们无法让Spring Security/Kerberos/AD适用于我们的Web应用程序.我们的诊断是我们的AD服务器发送一个NTLM令牌(我们可以告诉它以"TlRMTVNT ....."开头)到IE和IE然后将它发送到我们的应用程序并且它失败了.我们的AD服务器应该向IE发送Kerberos/SPNEGO令牌.
"活动部件"如下:
我们已按照此处的说明详细说明了所有内容:
https://spring.io/blog/2009/09/28/spring-security-kerberos-spnego-extension
这包括:
当我们启动TC服务器时,我们可以很好地看到事情初始化(即没有错误 - "从keytab获得的原则密钥"):
Creating instance of bean 'org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator#10fa4b8'
Invoking afterPropertiesSet() on bean with name 'org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator#10fa4b8'
Config name: C:\WINDOWS\krb5.ini
Debug is true …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Kerberos身份验证连接到SOAP服务wsdl url.我能够成功建立连接并进行服务呼叫.启动服务器后,我能够至少进行一次成功的服务呼叫.但是在几次请求(1或更多)之后,我突然得到无效的令牌错误.一旦我收到错误,未来的呼叫就不起作用,错误仍然存在.
如果我重新启动服务器,那么服务调用至少会运行一次.以上循环继续.
我无法弄清楚为什么突然令牌失效,尽管它早先工作了.并重新启动服务器使令牌再次有效.
这是错误堆栈跟踪:
Caused by: GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag)
at sun.security.jgss.GSSHeader.<init>(GSSHeader.java:97)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:237)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
Run Code Online (Sandbox Code Playgroud)