5

サード パーティの Web サービス (SOAP ベース) を呼び出すには、Web サービス クライアントを作成する必要があります。サード パーティは、wsdl および関連する xsd ファイルを公開しました。

サードパーティは、.p12 証明書を使用して Web サイトとサービスを保護します

スタブの生成には wsdl2java を使用しました。エンドポイントを変更し、サービスを呼び出しました。次のエラーを受け取りました。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header></SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">wsse:InvalidSecurity</faultcode>
         <faultstring>SECU1075: An error was discovered processing the &lt;wsse:Security> header</faultstring>
         <detail>SECU3510: Signature requirements validation failed: Element (/soapenv:Envelope/soapenv:Body) was not signed</detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

んーよしっ。私が文書に署名しなければならないことは理にかなっています。

(私にとって)奇妙な点は、WSDL ファイルのどこにもセキュリティ定義がないことです。これは正常ですか?サードパーティに連絡したところ、SOAP メッセージがどのように表示される必要があるかについての PDF が送られてきました。次のタグがヘッダーに表示されます:

<wsse:BinarySecurityToken>

<dsig:SignedInfo>

私が集めたものから、それには私の証明書といくつかのデジタル署名が必要です。

誰かがJavaでこれらを生成する方法を推奨できますか? 私は Axis2/Rampart パスをたどり始めましたが、正直なところ、それらは WSDL ファイルで定義されたセキュリティ要件を持つことを前提としているようです (間違っていたら訂正してください)。

4

1 に答える 1

4

WS-Security 標準を使用してメッセージに署名する必要があるようです。WS-security 標準では、wsdl ファイルへのセキュリティ マッピングは指定されていません。一部のアプリケーションは、WS-Security ポリシーと WS-Policy Attachment を Ws-security と組み合わせて使用​​します。WS-Policy アタッチメントは、ポリシーを WSDL にマップする方法を指定します。

これらの標準の詳細については、w3.org を参照してください。

はい、あなたは正しい道を進んでいます。WSS4J または軸の城壁を選択して使用できます。

于 2010-12-07T18:22:34.107 に答える