【发布时间】:2011-07-13 19:26:36
【问题描述】:
我已经通过 Axis2 在 Java 中构建了一个 Web 服务并将其上传到服务器上。一切正常,工作正常。但我没有考虑任何身份验证方法。如何为我的方法设置用户名和密码?
【问题讨论】:
标签: java web-services authentication passwords axis2
我已经通过 Axis2 在 Java 中构建了一个 Web 服务并将其上传到服务器上。一切正常,工作正常。但我没有考虑任何身份验证方法。如何为我的方法设置用户名和密码?
【问题讨论】:
标签: java web-services authentication passwords axis2
您可以创建一个接受用户名和密码的 Web 服务方法。
如果用户名和密码正确,则创建会话令牌(最好使用凭据创建)并将其发送回 Web 服务客户端。
每次 Web 服务调用的客户端都必须连同请求参数一起发送令牌。
由于请求具有有效令牌,因此客户端被视为已通过身份验证,您继续进行 Web 服务调用。
【讨论】:
如果您使用的是 servlet(而不是定制的独立服务器应用程序),您可以只使用 servlet 过滤器进行身份验证。
根据您使用的 Web 框架,您可以为此使用标准安全性。就像保护页面一样。
或者您可以使用 http BASIC 或 DIGEST 身份验证来保护资源。
对于容器而言,Web 服务仅是网页,因此它们可以以所有标准方式受到保护。
【讨论】:
Web 服务身份验证的标准是WS-Security。 Axis2 实现称为Rampart。
【讨论】:
您可以成功使用现有的 Axis2 模块之一:Rampart。
查看网站 (http://axis.apache.org/axis2/java/rampart/) 了解设置/配置说明以及客户端和服务器示例。
通过 Rampart,我设法通过 WCF 服务器和 Java 客户端使用 UsernameAndPassword 身份验证。
【讨论】: