webService验证客户端(HTTP Basic认证)
2016-05-31 00:00
495 查看
摘要: 使用HTTP Basic认证,为webSerive添加访问权限。
1. 修改web.xml
在web.xml中添加如下配置:
其中<web-resource-name>与已配置的<servlet-name>“AxisServlet”保持一致
<url-pattern>配置需要验证的url,/services/* 表示services下的所有请求都要验证
<role-name>配置有权访问此webService资源的角色
<auth-method>配置服务器端的验证模式
2. 修改tomcat配置
在${TOMCAT_HOME}/conf/tomcat-users.xml中添加如下配置:
web.xml中的<role-name>与此处的rolename保持一致
启动tomcat,在浏览器地址栏中打开webService,会弹出basic验证框
![](https://static.oschina.net/uploads/img/201605/31171720_WjtV.png)
输入正确的用户名和密码即可正常访问
![](https://static.oschina.net/uploads/img/201605/31171904_XxLZ.png)
3. 客户端调用
将webService资源设置为basic验证后,客户端直接调用会报401(无权限)错误,需要在客户端发起远程调用时设置服务器访问用户名及密码。
使用axis调用方式添加以下代码:
若使用RPC远程调用方式添加以下代码即可:
1. 修改web.xml
在web.xml中添加如下配置:
<security-role> <description>Normal operator user</description> <role-name>WsOperator</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>AxisServlet</web-resource-name> <url-pattern>/services/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>WsOperator</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config>
其中<web-resource-name>与已配置的<servlet-name>“AxisServlet”保持一致
<url-pattern>配置需要验证的url,/services/* 表示services下的所有请求都要验证
<role-name>配置有权访问此webService资源的角色
<auth-method>配置服务器端的验证模式
2. 修改tomcat配置
在${TOMCAT_HOME}/conf/tomcat-users.xml中添加如下配置:
<role rolename="WsOperator"/> <user username="test" password="test" roles="WsOperator"/>
web.xml中的<role-name>与此处的rolename保持一致
启动tomcat,在浏览器地址栏中打开webService,会弹出basic验证框
![](https://static.oschina.net/uploads/img/201605/31171720_WjtV.png)
输入正确的用户名和密码即可正常访问
![](https://static.oschina.net/uploads/img/201605/31171904_XxLZ.png)
3. 客户端调用
将webService资源设置为basic验证后,客户端直接调用会报401(无权限)错误,需要在客户端发起远程调用时设置服务器访问用户名及密码。
使用axis调用方式添加以下代码:
call.setProperty(Call.USERNAME_PROPERTY, "test"); call.setProperty(Call.PASSWORD_PROPERTY, "test");
若使用RPC远程调用方式添加以下代码即可:
options = serviceClient.getOptions(); HttpTransportProperties.Authenticator basicauth = new HttpTransportProperties.Authenticator(); basicauth.setUsername("test"); //服务器访问用户名 basicauth.setPassword("test"); //服务器访问密码 options.setProperty(HTTPConstants.AUTHENTICATE, basicauth);
相关文章推荐
- ASP.NET WebService中使用ASP.NET_SessionId的问题说明
- ASP.NET中基于soaphead的webservice安全机制
- ASP调用WebService转化成JSON数据,附json.min.asp
- js调用webservice构造SOAP进行身份验证
- ajax跨域调用webservice的实现代码
- ASP.NET调用WebService服务的方法详解
- php的webservice的wsdl的XML无法显示问题的解决方法
- PHP调用Webservice实例代码
- 在PHP中利用wsdl创建标准webservice的实现代码
- JQuery调webservice实现邮箱验证(检测是否可用)
- WebService出现"因 URL 意外地以 结束,请求格式无法识别"的解决方法
- 用JavaScript调用WebService的示例
- jQuery调用WebService返回JSON数据及参数设置注意问题
- 同步调用和异步调用WebService
- C#调用WebService实例开发
- 动态webservice调用接口并读取解析返回结果
- WebService 的简单封装接口调用方法
- ASP.NET实现基于Forms认证的WebService应用实例
- C#使用WebService结合jQuery实现无刷新翻页的方法
- C#调用和实现WebService,纯手工打造!