我正在编写java web服务,在提供响应之前,需要接受调用者的用户名和密码以进行内部身份验证。做这件事的标准方法(或最佳实践)是什么?它是在soap头中还是应该作为消息参数之一提供?在哪里可以找到这方面的代码示例?谢谢您。

最佳答案

提供用户名和密码的标准方法是使用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头文件。

10-06 10:05