我創建了一個Web服務,用Java編寫,並使用Eclipse & Axis2生成。我在我的services.xml文件中創建了一個ws-security策略,並創建了一個身份驗證處理程序。我對Web服務完全陌生,所以如果我的陳述完全錯誤,請原諒。在生成Web服務並擁有wsdl之後,我創建了一個SOAPUi項目並生成請求。 soapui生成的請求將soap頭部留空,所以當我運行請求時,我收到一個安全異常,認證失敗。當我輸入正確的標題時:如何使Web服務知道請求SOAP頭是必需的?
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-12468716">
<wsu:Created>2008-06-23T13:17:13.841Z</wsu:Created>
<wsu:Expires>2008-06-23T13:22:13.841Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-31571602">
<wsse:Username>alice</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bobPW</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
<wsa:To>http://localhost:8081/axis2/services/sample01</wsa:To>
<wsa:MessageID>urn:uuid:AEDBA74A8D1FC94B631214227032877</wsa:MessageID>
<wsa:Action>urn:echo</wsa:Action>
</soapenv:Header>
然後它工作。有沒有什麼是我的wsdl缺失,告訴SoapUi在用戶名和密碼字段中自動生成帶有問號?的標頭?因爲我已經將SoapUi用於其他wsdl,它自動生成了這些標頭。
男子從原來的給予制止的URL這是不安全的任何機構可以acceess這個http://docs.oasis-open.org/wss –