`
conkeyn
  • 浏览: 1529292 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

实现Axis web service 的基本方式认证(BASIC)

 
阅读更多

本文参考自:J2EE Web服务开发系列之十二: 实现安全的AXIS Web服务,第1部分

 

package com.hellking.study.webservice;

public class PersonalTaxService {
    final double base = 3500;// 所得税上缴基数。

    public double getTax(double salary) {
        double tax_salary = salary - base;
        double tax = 0.0d;// 计算后的所得税。
        if (0 > tax_salary)
            tax = 0;
        else if (0 < tax_salary && tax_salary <= 1500)
            tax = tax_salary * 0.03 - 0;
        else if (1500 < tax_salary && tax_salary <= 4500)
            tax = tax_salary * 0.10 - 25;
        return tax;
    }
}

 

布署web 服务

<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="PersonalTaxService" provider="java:RPC">
  		<parameter name="allowedMethods" value="*"/>
  		<parameter name="className" value="com.hellking.study.webservice.PersonalTaxService"/>
	</service>
</deployment>

 

执行命令:

java -classpath %CLASSPATH% org.apache.axis.client.AdminClient -l http://localhost:8080/axis/services/PersonalTaxService
 D:/workspace-java/axis1/web/WEB-INF/deploy_auth_basic.wsdd

 

编辑%TOMCAT_HOME%/conf/tomcat-users.xml ,添加用户角色和用户:

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

 编辑/axis1/web/WEB-INF/web.xml,在最后添加上:

	<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>

 

最后编写客户端代码:

package com.hellking.study.webservice;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;

/**
 * 调用需要验证的Web服务
 */
public class AuthClient {
    static final double salary = 50000;

    public static void main(String[] args) {
        try {
            // 服务端的url,需要根据情况更改。
            String endpointURL = "http://localhost:8080/axis/services/PersonalTaxService";// Web服务端点地址
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endpointURL));
            call.setOperationName(new QName("PersonalTaxService", "getTax"));// 设置操作的名称。
            // 由于需要认证,故需要设置调用的用户名和密码。
            call.getMessageContext().setUsername("hellking");// 设置用户名。
            call.getMessageContext().setPassword("simplewebservices");// 设置密码
            call.addParameter("op1", XMLType.XSD_DOUBLE, ParameterMode.IN);// 参数的类型
            call.setReturnType(XMLType.XSD_DOUBLE);// 返回的数据类型
            Double ret = (Double) call.invoke(new Object[] { new Double(salary) });// 执行调用
            System.out.println("使用HTTP协议来作为Web服务的传输协议!");
            System.out.println("已经成功调用。请参看服务端的输出!");
            System.out.println("输入工资" + salary + "元,应交个人所得税:" + ret);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

测试:

     1、访问:http://localhost:8080/axis/services,将列出web服务列表

点击PersonalTaxService 的wsdl链接地址,验证一下会不会提示要输入用户名和密码。

 

 

  • 大小: 7.7 KB
分享到:
评论

相关推荐

    webService添加basic验证

    对于基于Axis2框架的WebService来说,可以通过修改项目的`web.xml`文件来实现Basic验证。 ##### 修改`web.xml`文件 1. **定位到`servlet`元素**:找到`web.xml`文件中与你的WebService相关的`servlet`元素。例如,...

    web service axis 1.6

    Web服务Axis 1.6是Apache软件基金会开发的一个开源工具...尽管现在已经有了更现代的Web服务框架,如Axis 2和其他基于JAX-WS的实现,但了解和掌握Axis 1.6的基本知识仍然对于理解Web服务的原理和技术历史具有重要意义。

    axis2客户端调用服务端,带用户身份认证

    总的来说,实现“axis2客户端调用服务端,带用户身份认证”涉及理解Web服务安全概念,配置服务和客户端,以及编写适当的安全上下文代码。这不仅增加了服务的安全性,也为客户端和服务端之间的通信提供了可靠的信任...

    通向架构师的道路(第十三天)Axis2 Web Service安全初步.docx

    从低到高排列,常见的实现方式包括: 1. 使用J2EE Web应用默认的访问控制(数据是明文的) 2. 使用axis的Handler进行访问控制(数据是明文的) 3. 使用Servlet过滤器(Filter)进行访问控制(数据是明文的) 4. ...

    web service axis1.4 jar

    Web服务Axis1.4是Apache组织开发的一个开源框架,专门用于构建和...通过理解和熟练运用这些库,开发者可以创建符合WS-I Basic Profile标准的、具有互操作性的Web服务,从而实现不同系统之间的数据交换和业务流程集成。

    axis2客户端调用带Ntlm认证例子

    解压后,仔细阅读文档,编译并运行示例代码,可以帮助你更好地理解如何在Axis2客户端中实现NTLM认证的Web服务调用。 总之,理解NTLM认证机制和如何在Axis2中使用它对于开发需要与Windows域集成的应用至关重要。通过...

    Web Service(Axis) + Excel(Office 2003)

    【标题】Web Service(Axis) + Excel(Office 2003)的集成与应用 在信息技术领域,Web服务是一种基于互联网的软件交互方式,它允许不同系统之间共享数据和服务。Axis是Apache软件基金会开发的一个开源Java框架,...

    web_ service_基于axis和xfire.rar

    在本压缩包"web_service_基于axis和xfire.rar"中,重点是介绍了如何使用Axis和XFire这两个Java框架来开发和实现Web服务。 Axis是Apache软件基金会开发的一款开源工具,主要用于简化SOAP(简单对象访问协议)和WSDL...

    Axis1,Axis2,Xfire,CXF区别

    XFire 是一种新一代的 WebService 平台,它支持一系列新的 Web Service 标准,如 JSR181、WSDL2.0、JAXB2、WS-Security 等。XFire 采用 Woodstox 作 Stax 实现,性能有了质的提高。XFire 还具有易于上手、快速发布...

    axis2-eclipse-service-plugin-1.7.4.zip

    通过使用这个插件,开发者可以轻松地创建基于Axis2的Web服务,这些服务可以遵循各种Web服务规范,例如WS-I Basic Profile、WS-Security等。 至于"plugins"这一压缩包子文件的文件名,这通常表示该zip文件包含一系列...

    Axis2开发webservice总结.doc

    【标题】:Axis2开发Web服务总结 【摘要】:本文档主要总结了使用Axis2框架开发Web服务的相关知识,包括Web服务...理解Web服务的基本原理,熟练掌握Axis2的开发流程和工具使用,是成为一名合格的Web服务开发者的关键。

    axis1,axis2所需架包集合

    Axis1基于SOAP 1.1协议,提供了丰富的功能,包括自动处理WSDL(Web Service Description Language)、XML Schema和WS-I Basic Profile等。其主要特点如下: 1. **自动WSDL生成**:Axis1可以自动生成WSDL文档,使得...

    axis2 -1.6.2 api 文档

    2. **Web服务模型**:Axis2采用服务组件架构(Service Component Architecture, SCA)和服务数据对象(Service Data Objects, SDO)等概念,使得开发者可以更加灵活地构建和部署Web服务。 3. **模块化设计**:Axis2...

    WebService之Axis2实例

    Axis2支持SOAP 1.1和1.2,同时具备WS-I Basic Profile兼容性,可以处理复杂的Web服务交互。 二、环境搭建 在开始Axis2实例之前,确保已安装以下组件: 1. JDK 1.7:Java开发环境是必要的,因为Axis2依赖于Java平台...

    axis2需要的jar

    5. **WS-I兼容性库**:如wsdl4j.jar,用于处理WSDL(Web Service Description Language)文件,确保服务符合WS-I Basic Profile规范。 6. **编码和解码库**:如axiom-api.jar、axiom-impl.jar,它们是Apache AXIOM...

    axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip

    这个插件主要用于从WSDL(Web Service Description Language)文件自动生成Java源代码,帮助开发者快速构建基于Axis2的Web服务客户端和服务端。它简化了Web服务的开发流程,使得开发者无需手动编写复杂的SOAP消息...

    axis2_webservice开发指南

    Axis2是Apache软件基金会开发的一个高效且灵活的Web服务引擎,专为处理SOAP消息和实现Web服务而设计。本指南将深入讲解如何使用Axis2进行Web服务的开发。 一、Axis2简介 Axis2是基于AXIOM(Abstract XML ...

Global site tag (gtag.js) - Google Analytics