我正在编写java Web服务,需要接受来自调用者的用户名和密码以进行内部身份验证,然后再提供响应。这样做的标准方法(或最佳实践)是什么?它是在SOAP标头中还是应该作为消息参数之一提供?我在哪里可以找到代码示例?谢谢。
答案 0 :(得分: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标头。
答案 1 :(得分: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)
方法调用此方法。
答案 2 :(得分:0)
我喜欢这些东西的java5 EE教程,有代码示例和资源链接。 http://download.oracle.com/javaee/5/tutorial/doc/bncbx.html
更深入的安全方面的另一个非常好的网站是:OWasp at:https://www.owasp.org/index.php/Main_Page他们是网络安全恕我直言的专家。我们最近在一家银行使用了他们的api。
HTH, 詹姆斯