2015-09-03 51 views
1

目前我有一個調用出站SOAP服務的wsgateway。現在,提供者想要將安全頭添加到傳出的SOAP消息中。添加SOAP securityHeader | ws:outbound-gateway

爲了使服務調用成功,我需要在下面包含SOAP:Header的一部分。

<wsse:Security soapenv:mustUnderstand="1" 
      xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
      <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
       <wsse:Username>xxxx</wsse:Username> 
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">xxxx</wsse:Password> 
      </wsse:UsernameToken> 
     </wsse:Security> 

如何使用Header richher或mapper來解決這個問題。 實施現狀:

<int:chain input-channel="doOutBoundCallNow" output-channel="printChannel"> 
      <ws:outbound-gateway uri="http://localhost:8082/mockBinding"></ws:outbound-gateway> 



</int:chain> 

回答

0

你有沒有看向春WS documentation

您應該爲WSHandlerConstants.USERNAME_TOKEN配置Wss4jSecurityInterceptor,並將此interceptor添加到<int-ws:outbound-gateway>

+0

我使用的是2.2.2.RELEASE版本的spring-ws。我應該使用什麼版本的wss4j? – prakash

+0

不確定,但我只關注Spring WS依賴關係:https://github.com/spring-projects/spring-ws/blob/master/build.gradle#L247 –

+0

將wss4j升級到1.6.4後與設置「UsernameToken」操作相關的問題已解決。 – prakash