通过双向证书认证访问由tomcat7和Axis2搭建的web服务(上)

本文通过一系列的实验步骤描述,向您展示如何使用 gSOAP 编写的客户端,通过双向证书认证,访问由 tomcat7 和 Axis2 搭建的 web 服务。全文">循序渐进,分为几个阶段逐步展开,每个阶段相关的注意事项和遇到过的一些问题也一并记录下来供读者参考。

先简单介绍一下需要准备的工具。

服务端:由 tomcat7+axis2 搭建而成 客户端:由 gSOAP 工具生成 证书 :用 openssl 和 jdk 自带的 keytool 制作 其它 :如果在 Windows 操作系统下实验,
C++/C++ 代码可能
还会需要一些集成开发环境,如 Visual C++2010 或 CodeBlocks+MinGW 等。Java 代码的编译可能会用到 eclipse。

此外,为叙述方便,后文的用词上也作一些约定:

将 tomcat7 的安装路径记为:<tomcat_home> 将 gSOAP 压缩包的解压路径记为:<gsoap_home> 将 openssl 的安装路径记为:<openssl_home> 将基于 http 的 web 服务网址记为:<service_http> 将基于 https 的 web 服务网址记为:<service_https>

搭建基于 http 的 web 服务

准备好 java 代码

这里编写一个非常简单的 sayHello 功能的 java 代码,传入参数是一个字符串,返回值则是“Hello”加上传入的字符串。稍后用其发布 web 服务已经足够了,如 清单 1 所示:

清单 1. sayHello 源码

public class SimpleService{ public String sayHello(String name){ return "Hello, "+name; } }

使用 eclipse 或者 jdk 自带的 javac 命令行工具进行编译,生成 SimpleService.class 文件。

部署服务

利用 SimpleService.class 文件,快速的发布一个基于 http 的 web 服务,步骤如下:

从 axis2 官方网站下载 WAR (Web Archive) Distribution,
例如:axis2-1.6.2-war.zip 将 axis2-1.6.2-war.zip 文件解压缩,获得 axis2.war 文件; 将 axis2.war 文件放置于 <tomcat_home>\webapps 下; 启动 tomcat7,axis2.war 会自动解压缩生成 axis2 目录; 将 SimpleService.class 放置于 <tomcat_home>\webapps\axis2\WEB-INF\pojo 下。

这样,一个简单的 web 服务发布就完成了。

验证的方式也很简单,打开发布服务电脑上的浏览器,查看网址 http://127.0.0.1:8080/axis2/services/SimpleService?wsdl,如果能够显示 XML 结构的内容,就说明发布成功。

当然,也可以通过局域网内其它电脑访问该服务,如果访问不了,需要查看,IP 地址和端口是否正确,防火墙是否配置得当或关闭等。

后文我们将这个基于 http 的 web 服务网址记为 <service_http>。

值得一提的是,这里我们发布的 web 服务是通过 axis2 提供的热部署 (hotdeployment)功能进行的。打开 <tomcat_home>\webapps\axis2\WEB-INF\conf 下的 axis2.xml 文件,我们可以看到 axis2 默认是打开了热部署开关 hotdeployment 的,如 图 1 所示。

图 1. axis2 热部署开关

此外,pojo 部署目录也可以进行修改,如 图 2 所示:

图 2. axis2 pojo 部署路径

时间: 2025-01-19 07:03:38

通过双向证书认证访问由tomcat7和Axis2搭建的web服务(上)的相关文章

通过双向证书认证访问由tomcat7和Axis2搭建的web服务(下)

以下内容为通过双向证书认证访问由tomcat7和Axis2搭建的web服务的下篇,主要分三个部分进行说明:搭建基于 https 的 web 服务.编写支持 https 方式的客户端.基于证书认证的 web 服务,下面让我们看一下详细的内容. 搭建基于 https 的 web 服务 修改 tomcat7 的配置 打开 <tomcat_home>\conf\server.xml 文件,找到如 图 3 所示的片段: 图 3. 修改前的 tomcat7 https 端口配置 将这一段注释符去掉,使得

运用VB.net创建Web服务访问程序

web|web服务|程序|创建|访问 一.介绍: Web服务是微软提出的基于互联网的开发模型,一经提出即收到了业界的广泛推从.从目前的发展趋势来看,Web服务将引领下一代互联网的潮流.它是创建可互操作的分布式应用程序的新平台,是基于网络的.分布式的模块化组件.它执行特定的任务,遵守具体的技术规范,这些规范使得Web服务能与其他兼容的组件进行互操作. 本文就向大家介绍如何运用VB.net来调用Google的Web服务,也就是如何在自己的应用程序中添加访问Google的服务的功能.文章中介绍的功能包

was7如何配置在需要时客户端证书证书认证

问题描述 在was中可以配置客户端证书认证,但是并不是所有通过HTTPS通道访问的资源都需要客户端证书认证,可能只有其中部分资源需要客户端证书认证.那么我应该如何配置才能做到在应用需要时才要求客户端提供证书验证? 解决方案 解决方案二:该回复于2011-03-16 16:14:11被版主删除解决方案三:都是高手`~

阿里云 CDN HTTPS 最佳实践——客户端证书认证(六)

背景 我们在使用 HTTPS 时经常接触到的是服务器证书认证(单向认证),很少用到客户端证书认证(双向认证),这是因为对于 web 网站来说,用户数目广泛,使用服务器证书认证就够了,无需在 SSL 层做用户身份验证,对于需要验证的页面再在应用逻辑层来做用户身份验证(比如常见的账号密码登录),使用客户端证书认证反而影响用户体验.但是对于一些特殊企业客户,在涉及到资金.股票等等金融业务交易时,考虑到其业务的安全性,他们在原有业务可能已经用了客户端证书认证,对于这类客户在接入 CDN 时,必然也要支持

思科路由器IKEV2 L2LVPN证书认证配置

一.概述: IKEV2支持多种认证方式,还支持两边使用不一样的认证方式,本实验两边都是用证书方式进行认证,参考链接: http://blog.sina.com.cn/s/blog_675bc36a010160s4.html. 二.基本思路: A.配置证书认证之前,需要配置时钟同步 B.证书认证,identity可以设置为FQDN,但是配置SVTI时需要设置目标地址,因此这种方式不方便一边为动态的地址的配置方式. C.配置PKI的trustpoint的时候如果 revocation-check n

tortoisesvn-Win7 VS2010 SVN插件AnkhSVN证书认证失败的问题

问题描述 Win7 VS2010 SVN插件AnkhSVN证书认证失败的问题 本地Win7 VS2010 环境,用tortoiseSVN清除用户名密码之后就出现证书认证错误,接受新的认证之后可以了,但是VS2010AnkhSVN插件连服务器总是报证书错误,之前是好好的,网上找了各种办法也不行,这个不知道怎么回事,请大家给个思路.谢谢!!! 解决方案 如果不行,先卸载VS2010AnkhSVN插件,然后再重装试试.有时候是这样的.以前VA的插件偶尔也出现这样的问题. 希望能帮到你. 解决方案二:

[WCF安全系列]谈谈WCF的客户端认证[X.509证书认证]

前面介绍Windows认证和用户名/密码认证这两种典型的客户端认证模式,我们最后来介绍最后一种客户端认证方式,即客户端凭证类型为X.509证书时服务端采用的认证,简称为证书认证.我们照例先看看看客户端证书凭证如何设置设置. 一.客户端证书凭证的设置 在服务认证一文中,我们知道了基于X.509证书证书的服务凭证通过X509CertificateRecipientServiceCredential类型表示.与之对应地,客户端凭证对应的类型是X509CertificateInitiatorClient

https-ActionScript3 SSL证书认证

问题描述 ActionScript3 SSL证书认证 一款APP游戏,APP客户端是AS3 编写的,服务端是TOMCAT+JAVA,通信协议Https.问题:APP关于https 证书,目前是对所有证书信任,存在安全风险.因此希望能够对证书做校验,比如通过证书的固定公钥进行匹配校验.但相关开发人员答复,AS3对Https证书认证做了封装,没办法自己实现上述功能.想确认此说法是否正确?有无解决方案?

apns-.net调用 PushSharp 苹果证书认证失败

问题描述 .net调用 PushSharp 苹果证书认证失败 错误:{"Apns notification error: 'InvalidToken'"} 证书ToKen什么的都没有问题,.P12文件也是从网上找的资料转的如下: 从客户端得的deviceToken. 发送通知的.net应用程序出来需要知道deviceToken之外,还需要一个与APNS连接的证书. 这个证书可以通过我们前面生成的两个文件中得到. 使用OpenSSL生成.net和APNS通信的证书文件. 1.将aps_d