2012-03-22 8 views
0

基本的なAuth Soap 1.2を使用するサービスを構築しました。以下のコンフィグ:さらに別のMessageSecurityExceptionの問題

<customBinding> 
    <binding name="MyHttpBinding"> 
     <security authenticationMode="UserNameOverTransport" securityHeaderLayout="Strict" 
     allowInsecureTransport="false"> 
     <secureConversationBootstrap /> 
     </security> 
     <textMessageEncoding messageVersion="Soap12" /> 
     <httpsTransport maxReceivedMessageSize="6553600" authenticationScheme="Basic" maxBufferSize="6553600" /> 
    </binding> 
    </customBinding> 

私はそれを呼び出す複数のクライアント(WCFとJava)があります。 WCFクライアントで、私はすべての問題を持っていませんが、Javaクライアントと私は、サーバー側で、次の例外を取得:

System.ServiceModel.Security.MessageSecurityExceptionセキュリティ プロセッサは、メッセージのセキュリティヘッダを見つけることができませんでした。この は、メッセージがセキュリティで保護されていないエラーであるか、または通信相手との間でバインディングの不一致があるために発生する可能性があります。サービスがセキュリティ用に構成されており、クライアントがセキュリティ セキュリティを使用していない場合は、 が発生します。

私はこの問題を回避する方法を知っています。 システムは基本認証を使用する必要があり、Soap 1.2(したがってカスタムバインディング)を使用する必要があります。 呼び出すJavaクライアントを制御できませんが、基本的な認証を使用してサービスを呼び出していることが保証されています。

提案がありますか?

答えて

1

私はJavaの専門家ではありませんが、私の知る限り、JavaクライアントはSOAP 1.2をすぐに実装することはできません。また、Javaクライアントは、1.2 SOAPメッセージで必要なポリシー/セキュリティヘッダーを補うために外部ライブラリが必要です。

WCFサービスを使用するために、JavaクライアントがMetroライブラリを使用するように指示しました。 (私はあなたのような同様のバインディングを使用しています。) Metroライブラリを含める方法は次のとおりです。

ここにはinteroperabilityのMSDNリンクがあります。

希望すると便利です。

0

ユーザー名トークンをサーバーに送信するようにJavaクライアントを構成する必要があります。フィドラーをオンにして、動作中の石鹸(wcfクライアント)と非機能ワーカー(java)を比較してください。

関連する問題