2012-02-17 9 views
0

私はSpringを使用してSOAPメッセージに署名していますが、これは正確にはdocです。私の設定とドキュメントに記載されている設定との違いはありません。すべてが働いていると私は、送信メッセージに署名していますし、ヘッダがSpring WSS "wsse:security"タグ

<SOAP-ENV:Header> 
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
     <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1"> 
     ... 
     </ds:Signature> 
    </wsse:Security> 
</SOAP-ENV:Header> 

のように見えますが、問題は、サーバがそう

<SOAP-ENV:Header> 
    <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1"> 
    ... 
    </ds:Signature> 
</SOAP-ENV:Header> 

のようなものを期待して、サーバーが私を好きではないということです請願。私は解決策を見つける必要があるので、私はサーバー上の何かを変更することはできません。要求を生​​成するためにsoapUIを使用する場合は、要求にはwsse:Securityというタグが存在しないため、サーバが期待しているものはWSDLに揃えられます。

私は運がないと数時間もグーグルで捜しました。とにかくwsse:Securityタグを削除しますか?これをSpringで解決できますか、カスタムコードを実装する必要がありますか?

+0

Springはこのタスクを 'org.apache.ws.security'パッケージに委譲するので、このタグはSpringとは何の関係もないことがわかりました。おそらく問題はサーバー側にあるのかもしれないと思っています。 – jddsantaella

答えて

0

これが最良の回答であるかどうかはわかりませんが、これは私が見つけたものです。

WSセキュリティは、認証、デジタル署名、および暗号化/復号化の3つの異なる分野、すなわちWS-Securityに焦点を当てています。

認証とデジタル署名のうちの2つはXML Signatureの対象となるため、暗号化/復号化を行わずにメッセージに署名したい場合は、WS-Securityの一部としてではなくXML署名を直接使用できます。 。それは私の場合は、クライアントはちょうど私が春のWSで、この(全体のことを)行う方法を見つけることができませんでした<wsse:Security ...>

直下ではなく<ds:Signature... >を期待していたので、私は同じであるApacheのWSS4JパッケージからXMLSignatureを使用してそれを実装しましたその春はメッセージに署名するのです。