2015-09-15 24 views
0

我想添加一個SOAP:頭的WSS4J驗證了我的出站SOAP服務。春WebServiceTemplate攔截器添加安全報頭

下面是我的WebServiceTemplate和攔截器配置

<bean id="securityHeader" 
    class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor"> 
    <property name="securementActions" value="UsernameToken" /> 
    <property name="securementUsername" value="uname" /> 
    <property name="securementPassword" value="[email protected]" /> 
    <property name="securementPasswordType" value="PasswordText" /> 
    <property name="securementUsernameTokenElements" value="Nonce Created" /> 
</bean>` 

<bean id="webService" class="org.springframework.ws.client.core.WebServiceTemplate"> 
    <constructor-arg ref="messageFactory" /> 
    <property name="messageSender"> 
     <bean 
      class="org.springframework.ws.transport.http.CommonsHttpMessageSender"> 
      <!-- <property name="credentials" ref="credentials" /> --> 
     </bean> 
    </property> 
    <property name="interceptors"> 
    <list> 
     <ref bean="securityHeader" /> 
    </list> 
</property> 
    <property name="defaultUri" 
     value="https://test.test.com/ws/service/test" />   
    <property name="marshaller" ref="fmarshaller" /> 
    <property name="unmarshaller" ref="forwardunmarshaller" /> 
</bean> 

但是當外撥呼叫發生,其不添加SOAP安全頭。 webService.marshalSendAndReceive("http://localhost:8088/mockBinding",request);

+0

這裏看不到問題。你可以嘗試如果直接指定bean定義; (沒有裁判)工程? – Bajal

+0

配置的WebServiceTemplate實際上是您使用的模板嗎? –

+0

請問wss4j和spring版本在使用時會有問題嗎? – prakash

回答

0

下面的變化對我來說並沒有什麼用。

  1. 更改SOAP版本1.1
  2. 定義內攔截的bean聲明,而不是引用它。
  3. 使用Web服務消息回調。