1

私は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を使用しています。何が悪いのかわかりません。私を助けてください。

4

3 に答える 3

0

以前のコードで同様の問題がありました。欠けていたのは、クライアントが WSDL からセキュリティ ポリシーを読み取るときに実際の暗号化を行う jar 依存関係でした。

私の修正は、暗号化を有効にするためにPOMに特定のmaven依存関係を追加することでした。この URL を確認してください: http://cxf.apache.org/docs/using-cxf-with-maven.html

URL http://cxf.apache.org/docs/ws-securitypolicy.htmlの「WS-SecurityPolicy の有効化」セクションもお読みください。

これが役立つことを願っています

于 2013-03-23T11:46:58.293 に答える
0

正しいライブラリを使用していることを確認してください。cxf バンドルのみを含め、他の cxf 依存関係を削除してください。Maven を使用している場合は、次のようになります。

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-bundle</artifactId>
    <version>2.7.18</version>
</dependency>
于 2018-02-16T21:06:15.353 に答える