2016-11-15 12 views
0

我需要發送肥皂請求以使用Citrus框架自動執行我的測試。但是,當我發送請求,則返回「無效的用戶名或密碼」使用Citrus的WSS密碼輸入肥皂請求

Soap response

我試圖發送使用了SoapUI相同,因爲它發出的密碼類型,通過屬性的文本,它工作正常。

Password type in soapUI

我這裏的問題是設置在citrus.I了「WSS-密碼鍵入」使用柑橘文檔設置了用戶名和密碼,但我沒有找到如何設置密碼類型作爲文本。

柑橘的context.xml

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/> 

    <citrus-ws:client id="todoListClient" 
         request-url="soapURL" 
message-sender="basicAuthClient"/> 

<bean id="basicAuthClient" class="org.springframework.ws.transport.http.HttpComponentsMessageSender"> 
    <property name="authScope"> 
     <bean class="org.apache.http.auth.AuthScope"> 
     <constructor-arg value="host"/> 
     <constructor-arg value="port"/> 
     <constructor-arg value=""/> 
     <constructor-arg value="basic"/> 
     </bean> 
    </property> 
    <property name="credentials"> 
    <bean class="org.apache.http.auth.UsernamePasswordCredentials"> 
     <constructor-arg value="username"/> 
     <constructor-arg value="password"/> 

    </bean> 
    </property> 
</bean> 

幫助我實現這一目標。謝謝。

回答

0

您的代碼使用基本身份驗證而不是WSSecurity。您必須配置客戶端攔截器的WSSecurity如下:

<citrus-ws:client id="todoListClient" 
        request-url="http://localhost:8080/services/ws/todolist" 
        interceptor="wss4jSecurityInterceptor"/> 

<bean id="wss4jSecurityInterceptor" 
    class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor"> 
    <property name="securementActions" value="Timestamp UsernameToken"/> 
    <property name="securementUsername" value="admin"/> 
    <property name="securementPassword" value="secret"/> 
</bean> 

的Wss4jSecurityInterceptor類有一個名爲「securementPasswordType」屬性,你可以設置。

另請參閱Citrus示例項目https://github.com/christophd/citrus-samples/tree/master/sample-soap-wssecurity

+0

這可以發送請求。但在接收響應時出錯。錯誤jSecurityInterceptor |無法確保響應:未知的密碼類型編碼:PasswordType;嵌套的異常是org.apache.ws.security.WSSecurityException:未知的密碼類型編碼:PasswordType org.springframework.ws.soap.security.wss4j.Wss4jSecuritySecurementException:未知的密碼類型編碼:PasswordType; –

+0

不知何故,我通過將另一個屬性設置爲來制定解決方法。感謝你的幫助。謝謝。 –