2012-04-20 15 views
1

私はトランスポートとメッセージの両方のセキュリティと相互証明書認証を使用してWCFサービス用のMetroベースのクライアントを作成しようとしていました。WCFメトロInteropメッセージは暗号化されていません

メッセージセキュリティが動作し、本文が暗号化されてHTTP経由で送信されるか、SSLのみが動作し、メッセージは暗号化されません。両方を有効にすると、クライアントはSSLを介して暗号化されていないメッセージを送信します。

これは私の現在のバインディングされていますhttpTransportで

<customBinding> 
    <binding name="customBind"> 
     <transactionFlow /> 
     <security authenticationMode="MutualCertificate" allowSerializedSigningTokenOnReply="true" defaultAlgorithmSuite="Basic128" includeTimestamp="true" securityHeaderLayout="Lax"> 
     </security> 
     <textMessageEncoding messageVersion="Soap11" /> 
     <httpsTransport requireClientCertificate="false"/> 
     <!--<httpTransport />--> 
    </binding> 
    </customBinding> 

、メッセージがhttpsTransportで、暗号化され、そうではありません。メッセージは暗号化されていないため、サーバーは「メッセージのセキュリティを検証するときにエラーが発生しました。」と応答します。 Metroクライアントが「com.sun.xml.wss.XWSSecurityException:セキュリティ要件が満たされていない - メッセージにセキュリティヘッダーがありません」というメッセージが表示されて失敗します。

誰もこれまでに遭遇したことはありますか?なぜこれが起こっているのか、私が探検できる可能性のあることについての手掛かりはありますか?追加情報:Netbeans 7.1.1とMetro 2.2を使用する。

+0

SSLで送信されている場合、暗号化されたメッセージが必要ですか? –

+0

残念ながら、私はセキュリティ要件により、トランスポートとメッセージの両方のセキュリティが必要とされています。 – Sorcerer13

+0

あなたは試しているバインディング設定を投稿できますか?セキュリティ属性にmode = "both"と指定するだけでよいでしょう。また、Metroはws- *標準をサポートしているので、wsHttpBindingを使用していない理由は何ですか? – dez

答えて

2

私は、wsdlからTransportBinding要素を削除し、JavaにMetroの代わりにトランスポートセキュリティを処理させることで、これを解決することができました。

関連する問題