Wss4jSecurityInterceptor の Spring 実装に基づいて ws (soap) を開発しました。
構成は次のとおりです。
... securementActions=タイムスタンプ署名暗号化 ... securementSignatureParts={要素}{...schemas.xmlsoap.org/soap/envelope/}本体;{要素}...www.w3.org/2005/08/addressing}To;{要素}{...www .w3.org/2005/08/addressing}Action;{Element}{...www.w3.org/2005/08/addressing}MessageID;{Element}{...www.w3.org/2005/08 /addressing}RelatesTo;{要素}{...docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}タイムスタンプ
クロックがサーバーのクロックより 2 分 (またはそれ以上) 遅れて設定されているときにクライアントから ws を呼び出すと、以下のメッセージが表示されます。
org.apache.ws.security.WSSecurityException: メッセージの有効期限が切れています (WSSecurityEngine: 無効なタイムスタンプ メッセージのセキュリティ セマンティクスの有効期限が切れています)
SoapUI を使用して ws をテストします。私が受け取った応答では、クライアント側でボディブロックを復号化できません。
時計同期時のレスポンス
<SOAP-ENV:封筒 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" > <SOAP-ENV:ヘッダー xmlns:wsa="http://www.w3.org/2005/08/addressing"> ... </SOAP-ENV:ヘッダー> <SOAP-ENV:Body wsu:Id="id-148" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0. xsd"> <SOAP-ENV:フォルト> <faultcode>SOAP-ENV:サーバー</faultcode> <faultstring xml:lang="en">エラー ラベル</faultstring> <詳細> <submissionFault xmlns="xxxxxx"> <エラー xmlns="xxxxxxx"> <errorCode>ここにエラーコード</errorCode> <errorDescription>ここにエラーの説明</errorDescription> <errorDetail>エラーの詳細はこちら</errorDetail> </エラー> </submissionFault> </詳細> </SOAP-ENV:障害> </SOAP-ENV:本体> </SOAP-ENV:エンベロープ>
両方の時計が同期していない場合の応答
<SOAP-ENV:エンベロープ xmlns:SOAP-ENV="..." xmlns:xenc="...#"> <SOAP-ENV:ヘッダー xmlns:wsa="..."> ... </SOAP-ENV:ヘッダー> <SOAP-ENV:本体 wsu:Id="id-157" xmlns:wsu="..."> <xenc:EncryptedData Id="EncDataId-162" タイプ="..."> <xenc:EncryptionMethod Algorithm="...#aes256-cbc"/> <ds:KeyInfo xmlns:ds="...#"> <wsse:SecurityTokenReference xmlns:wsse="..."> <wsse:参照 URI="#EncKeyId-xxxxxxxxxxxxxhhhhhyyyy"/> </wsse:SecurityTokenReference> </ds:キー情報> <xenc:CipherData> <xenc:CipherValue>PMam8TSjmX9gHDE7+/fekt575W+qWFC2xcMAXzAlTPfxoQ3ctBG9bUPUAsnMNQm41G9ya0EZaQtV zRL59IFW0wrowbJXhUHXvW0YPkAbIUSnnmWreQpHwy5oKA5DQWJ+nzTnyMdXq8ukxDPCP5ALlvGD wv685Fs14YmWupzXVBGufcu4XSGFI ... XhUkjHrOlrBL4PHiZ9imt nWLswfcay6friGSfkN2Z0U5oJ3XW034sVCONFBdZVNwia51nNmGTGwsMXJFxXLXCxv/lVP1p3tMq StoR11Otn8d/gcc06q+jBJDu5KXTgI5V6fHyW17jvV924AorYA44BiZ6ym5u4dti8fvCSFfj8shg /4DhGS16ATWFFfZ+QzTxageik1+d/+AbMc031wrO60hm7dIMAsOegqD0BKUkEgkBbk0totU4TI55 C3BHPmv44QPGpoOSmkGAjYYzfbv9GE6HeaUBVXviJqaA1q0BiIIklINMmnry9KU53mi59swqBNKz pF6cNDjKFGDNeRW9JLGNJq8dsnqK8nn7zE/sE2PxFGwJ+3qk40TuE6mjhA==</xenc:CipherValue> </xenc:CipherData> </xenc:暗号化されたデータ> </SOAP-ENV:本体> </SOAP-ENV:エンベロープ>
何か案が?
ありがとう