Axis为Web服务的访问控制提供了相关的配置方法,并提供了一个访问控制的简单Handler。默认情况下,只要在配置描述符中添加用户,然后在Web服务器的部署描述符中自动允许的角色即可。
1. 在Axis的配置文件user.lst(位于WEB-INF目录下)中添加一个用户,如“admin111111”表示用户名是“admin”密码为“111111”。
2. 把例Test的Web服务重新部署(红色注释为新加)。
<service name="Test" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
<handler type="Authenticate"/> //新加的AXIS自带的Handler
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="allowedMethods" value="test"/>
<parameter name="allowedRoles" value="admin"/> //注意,这里是新加的部分!
<parameter name="className" value="Test"/>
</service>
在此配置描述符中,指定Test服务只能被admin访问。
3. 修改客户端访问TestClient.java,增加访问用户名和密码。关键代码如下:
call.getMessageContext().setUsername("admin ");//用户名
call.getMessageContext().setPassword("111111");//密码
1. 在Axis的配置文件user.lst(位于WEB-INF目录下)中添加一个用户,如“admin111111”表示用户名是“admin”密码为“111111”。
2. 把例Test的Web服务重新部署(红色注释为新加)。
<service name="Test" provider="java:RPC">
<requestFlow>
<handler type="soapmonitor"/>
<handler type="Authenticate"/> //新加的AXIS自带的Handler
</requestFlow>
<responseFlow>
<handler type="soapmonitor"/>
</responseFlow>
<parameter name="allowedMethods" value="test"/>
<parameter name="allowedRoles" value="admin"/> //注意,这里是新加的部分!
<parameter name="className" value="Test"/>
</service>
在此配置描述符中,指定Test服务只能被admin访问。
3. 修改客户端访问TestClient.java,增加访问用户名和密码。关键代码如下:
call.getMessageContext().setUsername("admin ");//用户名
call.getMessageContext().setPassword("111111");//密码