2011-09-19 49 views
3

我正在編寫java web服務,它在調用響應之前需要從調用者接受用戶名和密碼以進行內部身份驗證。這樣做的標準方式(或最佳實踐)是什麼?它是在SOAP頭中還是應該作爲消息參數之一提供?我在哪裏可以找到代碼示例?謝謝。在web服務調用中使用用戶名和密碼

+0

您正在使用哪個WS協議棧? – Santosh

回答

0

用戶名和密碼通常以http頭中的部分形式發送.JAX-WS提供常量USERNAME_PROPERTY和PASSWORD_PROPERTY,以便在服務器上處理這些屬性。您必須編寫用於訪問這些值的http處理程序。

void authenticate(HttpExchange ex){ 
    Headers headers = ex.getRequestHeaders(); 
headers.get(BindingProvider.USERNAME_PROPERTY) 
headers.get(BindingProvider.PASSWORD_PROPERTY) 
} 

從您的Httphandler的public void handle(HttpExchange ex)方法中調用此方法。

1

的使用WS-Security提供的用戶名和密碼的標準方法,它提供了SOAP頭安全信息:

<SOAP-ENV:Header> 
    <wsse:Security SOAP-ENV: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-29477163" 
     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsse:Username>username</wsse:Username> 
     <wsse:Password>verySecret</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 
</SOAP-ENV:Header> 

WSS4J實現Java的WS-Security頭。

相關問題