2017-01-25 7 views
0

セキュリティ保護されたSOAPサービスに接続しようとしていますが、x.509証明書認証が使用されています。私は.p12クライアントキーと.pfxサーバーキーを持っています。以下の設定とコードを見つけてください。WSEncryptBody/WSSignEnvelope:暗号化/署名する要素が見つかりません。

私は取得しています誤りがある - 要素の暗号化/署名が見つからないために:http://www.w3.org/2005/08/addressing、アクション

マイPOM。

<groupId>test-pps-2</groupId> 
<artifactId>test-pps-2</artifactId> 
<version>1.0-SNAPSHOT</version> 

<properties> 
    <cxf.version>2.6.0</cxf.version> 
    <spring.version>3.2.4.RELEASE</spring.version> 
    <wss4j.version>1.6.19</wss4j.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxws</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <!-- Jetty is needed if you're are not using the CXFServlet --> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http-jetty</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-ws-security</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.ws.security</groupId> 
     <artifactId>wss4j</artifactId> 
     <version>${wss4j.version}</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-codegen-plugin</artifactId> 
      <version>${cxf.version}</version> 
      <executions> 
       <execution> 
        <id>generate-sources</id> 
        <phase>generate-sources</phase> 
        <configuration> 
         <sourceRoot>${project.build.directory}/generated/</sourceRoot> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>${basedir}/src/main/resources/WSDL.wsdl</wsdl> 
           <serviceName>PPS</serviceName> 
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

WSS4JOutInterceptor;私はサービスに接続しようとしていた場合

<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor" id="outbound-security"> 
    <constructor-arg> 
     <map> 
      <entry key="action" value="Signature Encrypt"/> 
      <entry key="user" value="clientUser"/> 
      <entry key="signatureUser" value="clientUser"/> 
      <entry key="signaturePropFile" value="clientKeystore.properties"/> 
      <entry key="useSingleCertificate" value="false"/> 
      <entry key="encryptionPropFile" value="serviceKeystore.properties"/> 
      <entry key="signatureKeyIdentifier" value="DirectReference"/> 
      <entry key="encryptionUser" value="imsinterop"/> 
      <entry key="encryptionKeyIdentifier" value="IssuerSerial"/> 
      <entry key="passwordCallbackClass" value="pps.ClientPasswordCallback"/> 
      <entry key="signatureParts" value="{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body; 
         {Element}{http://www.w3.org/2005/08/addressing}Action; 
         {Element}{http://www.w3.org/2005/08/addressing}MessageID; 
         {Element}{http://www.w3.org/2005/08/addressing}To;"/> 
      <entry key="encryptionParts" value="{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body"/> 
      <entry key="encryptionSymAlgorithm" value="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/> 
      <entry key="encryptionKeyTransportAlgorithm" value=" http://www.w3.org/2001/04/xmlenc#rsa-1_5"/> 
      <entry key="signatureAlgorithm" value="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> 
      <entry key="signatureCanonicalizationAlgorithm" value="http://www.w3.org/2001/10/xml-exc-c14n#"/> 
     </map> 
    </constructor-arg> 
</bean> 

、私はこの問題を修正する方法にしたい次のエラー

org.apache.ws.security.WSSecurityException: General security error (WSEncryptBody/WSSignEnvelope: Element to encrypt/sign not found: http://www.w3.org/2005/08/addressing, Action) 

を取得します。ありがとうございました。

答えて

関連する問題