私はWebサービスセキュリティを学んでいます。そのためにCXFフレームワークを使用しています。私は1つのテストサービスを開発しました。これにより、送信した値が2倍になります。このチュートリアルに基づく
XML暗号化と署名のためのWS-Policyを追加しました。
次に、CXFを使用したEclipseプロジェクトとして、このサービスのWebサービスクライアントを開発しました。以下は私のクライアント構成ファイルです
<jaxws:client id="doubleItClient" serviceClass="com.DoubleIt" address="http://localhost:8080/myencws/services/DoubleItPort?wsdl">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
<jaxws:properties>
<entry key="ws-security.callback-handler" value="com.ClientKeystorePasswordCallback"/>
<entry key="ws-security.encryption.properties" value="com/clientKeystore.properties"/>
<entry key="ws-security.signature.properties" value="com/clientKeystore.properties"/>
<entry key="ws-security.encryption.username" value="myservicekey"/>
</jaxws:properties>
すべてのキーストアファイルを生成し、clientKeystore.propertiesファイルを作成して、プロジェクトのsrcディレクトリに配置しました。
しかし、このクライアントを実行するたびに、SOAP要求メッセージは暗号化されませんでした。だから旅館サーバー側私は次のような例外を取得しています
これらの代替ポリシーは満たすことができません:{ http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702 } EncryptedParts { http://docs.oasis-open.org/ws-sx/ws -securitypolicy / 200702 } SignedParts
以下は私のSOAPリクエストです
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:doubleValue
xmlns:ns2="http://com/"><arg0>5</arg0></ns2:doubleValue></soap:Body></soap:Envelope>
CXF2.7.3を使用しています。何が悪いのかわかりません。私を助けてください。