2010-06-18 32 views
1

我已經在Java CXF中開發了我的web服務,它返回java.util.List。這個web服務是啓用密碼的。這意味着我出於安全目的使用了org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor。如何在從PHP調用Java CXF webservice時傳遞密碼文本

現在我想從PHP調用這個web服務。但我無法這樣做。沒有安全設置,我可以使用nusoap訪問我的web服務。但是當我啓用在web服務安全feture(攔截),我收到錯誤等NS1:發現處理所述報頭InvalidSecurity錯誤

和我收到響應如下:

HTTP/1.1 500內部服務器錯誤 服務器:Apache-狼/ 1.1 的Content-Type: 文本/ XML的,字符集= ISO-8859-1 內容長度:361時間:星期五,6月18日 2010 GMT 8點53分54秒的連接:關閉

< soap:Envelope xmlns:soap =「http://schemas.xmlsoap.org/soap/envelope/」> < soap:Body> < soap:Fault> < faultcode xmlns:ns1 =「http://docs.oasis-open .ORG/WSS/2004/01 /綠洲-200401-WSS-的WSSecurity-secext-1.0.xsd」> NS1:InvalidSecurity </Fault代碼> < faultstring>錯誤被發現 處理< WSSE:安全> 頭</faultstring> < /肥皂:故障> < /SOAP:車身>

任何幫助將appriciated 感謝提前 Darpan德賽

回答

3

我自己得到了答案。只需要包含以下代碼。 它會在nusoap中添加ws-security。

$header = '< wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
        < wsse:UsernameToken> 
        < wsse:Username>UserName</wsse:Username> 
        < wsse:Password>Password</wsse:Password> 
        < /wsse:UsernameToken> 
        < /wsse:Security>'; 

$result = $client->call('yourMethodName',$param,$namespace,$soapAction,$header); 
相關問題