WebService Tomcat7实现基本用户认证
今天在发布一个WebService 需要进行用户用户认证
如下图所示效果
通过简单的两步设置就可以实现
第一,配置tomcat user
即配置tomcat-users.xml,设置用户角色和用户信息
即在节点 tomcat-users节点中间添加如下代码
<tomcat-users> <role rolename="WebService"/> <user username="WebService" password="a111111" roles="WebService"/> </tomcat-users>
这里表示新建了一个角色WebService
同时新建了一个用户WebService,属于WebService角色,密码是a111111
第二,在我们项目下面的web.xml中间中添加如下代码
Normal operator user WebService Operator Roles Security /services/* WebService NONE BASIC
最后,当我们访问如下地址的时候就会要求我们输入用户名和密码了
localhost:8080/axis2/services/myReult?wsdl
当然,如果是在客户端,我们可以使用如下代码实现向服务器发送密码
ServiceClient client = null;Options options = null;OMElement response = null;Authenticator authenticator = null; authenticator = new Authenticator(); List auth = new ArrayList();auth.add(Authenticator.BASIC);authenticator.setAuthSchemes(auth); authenticator.setUsername("username");authenticator.setPassword("userpass");authenticator.setRealm("webservice");authenticator.setPreemptiveAuthentication(true); options.setProperty(HTTPConstants.AUTHENTICATE, authenticator);client.setOptions(options);
注意,如果您不添加如下代码
options.setProperty(HTTPConstants.AUTHENTICATE, authenticator)
就会抛出异常的。
另外,通过此种方式的设置后,在kettle中使用 【Web 服务查询】这个组件,是完美兼容的
也就是说,在 【Web 服务查询】 中的http登录和http密码中输入上面我们设置好的用户名和密码即可
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情