【发布时间】: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