2011-11-09 3 views
1

WCFサービスに接続するJavaクライアントがあります。このサービスは、ローカルサービスまたはネットワークサービスではなく、別のドメインユーザーとしてホスト上で実行されるように設定されています。サービスは、WSDLにuserPrincipalNameをパブリッシュします。私はローカルシステムで実行するようにWCFサービスを設定した場合、私はクライアント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) 

で、次の例外を取得SPNEGOトークン交換中

はSPNEGOトークンの交換作業を占めています。 ローカルシステムアカウントで実行されていないサービスのコードを変更する必要はありますか?

更新-1

WCFサービスに接続するためのC#クライアントを取得することで、いくつかのデバッグした後、私はC#クライアントがSPNEGOプロトコルの修正版を使用していることがわかっMS-SPNGと呼ばれます。 Java 6はこれをサポートしていますか?トークンを調べると、サポートされていないメカニズム1.2.840.113554.1.2.2.3に関するエラーが表示されます。

答えて

1

これらのリンクは何が起きているかを説明しています。 MSにはSpNegoプロトコルの拡張機能があり、WCFサービスをユーザー(ローカルサービスなどではなく)として実行すると起動します。 Thisは、新しいプロトコルのMS仕様です。hereは、回避策を説明するopenjdkドキュメントです。

関連する問題