电信系统接口WebService安全性之我见(二) 利用Servlet配置Web服务的安全访问

不管Axis部署在哪种服务器上(Tomcat还是Websphere),它总是以Servlet方式来运行的。所以最简单实现Web服务安全就是通过在Web应用的配置文件(web.xml)来实现访问控制。
J2EE web应用中有多种认证方式:BASIC(基本认证方法)、FORM(基于表单)、DIGEST(消息摘要)和CLIENT-CERT(数字证书)。此处只说明最基本的认证方式。例如在Tomcat配置如下:
1. 首先在Tomcat角色配置文件中增加一个角色和一个帐号。在tomcat-users.xml中增加角色(Tomcat_Home\conf\tomcat-users.xml)。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>

<role rolename="department-manager"/>
<user username="admin" password="simplewebservices" roles="department-manager"/>

</tomcat-users>
2.添加了一个department-manager角色,并在此角色中添加了一个名为hellking的用户。要使tomcat-users.xml中配置的角色和用户生效,需要配置tomcat使用UserDatabaseRealm。打开Tomcat_Home\conf\server.xml配置文件,在GlobalNamingResources中添加以下描述:

<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
2. 再web应用的部署描述符中指定Web服务资源的访问控制,如下所示:


<security-constraint>
<web-resource-collection>
<web-resource-name>Tax Web service </web-resource-name>
<url-pattern>/services/PersonalTaxService</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>department-manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Axis Basic Authentication Area</realm-name>
</login-config>
<security-role>
<role-name>department-manager</role-name>
</security-role>
url-pattern指定了需要通过角色验证的URL样式,在这里是"/services/PersonalTaxService";role-name是能够访问制定URL的角色,这里是department-manager。以上配置的意思是只有角色类型是"department-manager"的用户才能访问URL样式为"/services/PersonalTaxService"Web服务。
3. Axis客户端的编写。
call.getMessageContext().setUsername("hellking");//设置用户名
call.getMessageContext().setPassword("simplewebservices");//设置密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值