【问题标题】:Kerberos error: GSSHeader did not find the right tagKerberos 错误:GSSHeader 未找到正确的标记
【发布时间】:2015-08-11 12:47:25
【问题描述】:

我正在尝试将 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)

【问题讨论】:

    标签: java soap kerberos spring-security-kerberos jgss


    【解决方案1】:

    在没有看到 Base 64 值或十六进制转储的情况下,我假设客户端正在发送 NTLM 类型 1 令牌并且 Java 不支持 NTLM。

    【讨论】:

      【解决方案2】:

      我找不到令牌无效的根本原因。但这是我解决这个问题的方法。

      在我重新启动服务器并在上下文中再次加载 bean 后,我的身份验证首次工作。所以我将我的spring bean的范围更改为prototype,以便每次创建新的代理bean。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-24
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-24
        • 1970-01-01
        • 2018-10-29
        相关资源
        最近更新 更多