我在Java中通过Axis2构建了一个Web服务,并将其上传到服务器上。一切都很好,它运作得很好。但我没有考虑任何认证方法。如何为我的方法设置用户名和密码?
答案 0 :(得分:3)
Web服务身份验证的标准是WS-Security。 Axis2实现称为Rampart。
答案 1 :(得分:1)
您可以创建一个接受用户名和密码的Web服务方法
如果用户名和密码正确,则创建会话令牌(最好使用凭据创建)并将其发送回Web服务客户端。
每个Web服务调用的客户端也必须与请求参数一起发送令牌
由于请求具有有效令牌,因此客户端被视为已经过身份验证,您继续进行Web服务调用。
答案 2 :(得分:1)
如果您正在使用servlet(而不是定制的独立服务器应用程序),则可以使用servlet过滤器进行身份验证。
根据您使用的Web框架,您可以使用标准安全性。就像你保护页面一样。
或者您可以使用http BASIC或DIGEST身份验证来保护资源。
对于容器而言,Web服务不仅仅是网页,因此可以通过所有标准方式对其进行保护。
答案 3 :(得分:1)
您可以成功使用现有的Axis2模块之一:Rampart。
检查网站(http://axis.apache.org/axis2/java/rampart/)是否有设置/配置说明以及客户端和服务器示例。
使用Rampart,我设法对WCF服务器和Java客户端使用UsernameAndPassword身份验证。