【问题标题】:SpNego: Defective Token DetectedSpNego:检测到有缺陷的令牌
【发布时间】:2011-11-09 04:03:36
【问题描述】:

我有一个连接到 WCF 服务的 java 客户端。此服务配置为在主机上作为单独的域用户运行(即不作为本地服务或网络服务)。该服务在其 WSDL 中发布一个 userPrincipalName。

在 SpNego 令牌交换期间,我在客户端收到以下异常

Defective token detected (Mechanism level: AP_REP token id does not match!)
This is the call stack:
    at sun.security.jgss.spnego.SpNegoContext.initSecContext(SpNegoContext.java:450)
    at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:230)
    at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)

如果我将 WCF 服务配置为在本地系统帐户下运行,则 SpNego 令牌交换工作。 非本地系统账户下的服务是否需要修改代码?

Update-1

通过让 C# 客户端连接 WCF 服务进行一些调试后,我发现 C# 客户端正在使用名为 MS-SPNG 的 SpNego 协议的修改版本。 Java 6 支持这个吗?当我检查令牌时,我收到有关不受支持的机制 1.2.840.113554.1.2.2.3 的错误。

【问题讨论】:

    标签: java wcf kerberos spnego wsit


    【解决方案1】:

    这些链接解释了正在发生的事情。 MS 有一个 SpNego 协议的扩展,当我们以用户身份运行 WCF 服务时(即不作为本地服务等),它就会启动。 This 是新协议的 MS 规范,here 是说明解决方法的 openjdk 文档。

    【讨论】:

      猜你喜欢
      • 2014-07-19
      • 2023-04-11
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多