内容摘要:本文结合 WebSphere 里的开发工具 AST(Application Server Toolkit) 介绍了使用 WebSphere 策略集开发满足 WS-Security 的 standalone 的 Web Service 客户端,使其在不依赖于 WAS 的 J2EE 容器环境下也能调用安全的 Web Service。
引言
WebSphere Application Server 6.1(WAS6.1)的 Web Service Feature Pack 提供了对 JAX-WS 2.0 这种新的 Web Service 标准的支持。同时,通过策略集(Policy Set)的方式,来满足 Web Service 的服务质量(QoS)。其中,WS-Security 规范使用了消息加密和数字签名的方法来保证 SOAP 消息在传送中的安全性和完整性。Web Service 客户端在调用使用了 WS-Security 的 Web Service 的时候,自身也必须满足 WS-Security 的规范。如果客户端是使用 WebSphere Application Server 6.1(加上 Web Service Feature Pack)作为容器的 J2EE 应用,我们可以通过和服务器端同样的方式来配置 WS-Security 所要使用的证书和密钥。但是并不是所有的 Web Service 客户端都是 J2EE 项目,并且使用 WAS6.1 作为服务器。在一个典型的中小客户和大型企业使用 Web Service 进行 B2B 对接的场景中,中小型客户需要使用手中仅有的 standalone 的 java 程序作为客户端,来调用大型企业安全的 Web Service。对于这种 standalone 的 java 客户端,需要一种简单可行的方式来满足 WS-Security。WAS 的开发工具 AST(Application Server Toolkit)6.1.1.3 以及 Rational Application Developer 7.0(需要安装 Web Service Feature Pack)中加入了这样的功能,通过与服务器端类似的策略集配置使得客户端也能保证 Web Service 的 QoS,其中包含 WS-Security。
本文通过一个例子来构建满足 WS-Security 的 Web Service 客户端,并且这个客户端不依赖于任何服务器或 Web 容器,运行在 J2SE 单机环境中。本文首先给出了一个 Web Service 示例服务的 WSDL,描述一个 Web Service 的服务器提供的一个 Web 服务,接下来详细介绍使用 AST 构建这个安全的 standalone 的 Web Service 客户端的步骤,最后说明详细的测试方法,包括使用 TCP/IP 监视器来监控测试报文。
来源:developerWorks 作者:戴渝 责编:豆豆技术应用