WebService Tomcat7实现基本用户认证

WebService Tomcat7实现基本用户认证

今天在发布一个WebService 需要进行用户用户认证

如下图所示效果

20170604144048.png

通过简单的两步设置就可以实现

第一,配置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/天,具体规则查看活动详情Blog Img