2011-11-09 9 views
1

Java 클라이언트가 WCF 서비스에 연결되어 있습니다. 이 서비스는 로컬 서비스 또는 네트워크 서비스가 아닌 별도의 도메인 사용자로 호스트에서 실행되도록 구성됩니다. Service는 WSDL에 userPrincipalName을 게시합니다. 내가 로컬 시스템에서 실행하는 WCF 서비스를 구성 SPNEGO 토큰 교환 작업 계정 경우 SPNEGO 토큰 교환시 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) 

에 다음과 같은 예외를 얻을. 로컬 시스템 계정으로 실행되지 않는 서비스의 코드를 수정해야합니까?

는 업데이트-1 WCF 서비스와 연결하는 C#을 클라이언트를 얻어서 디버깅 후

, 나는 SPNEGO 프로토콜의 수정 된 버전을 사용하는 C#을 클라이언트가 MS-SPNG라는 것을 발견했다. Java 6는 이것을 지원합니까? 토큰을 검사 할 때 지원되지 않는 메커니즘 1.2.840.113554.1.2.2.3에 대한 오류가 발생합니다.

답변

1

이 링크는 무슨 일이 일어 났는지 설명합니다. MS는 사용자로 WCF 서비스를 실행할 때 (즉 로컬 서비스 등이 아닌) SpNego 프로토콜에 대한 확장 기능을 제공합니다. This은 새 프로토콜의 MS 사양이며 here은 대안을 제공하는 openjdk 문서입니다.