《Java Web 服务 Axis2 WS-Security基础》由会员分享,可在线阅读,更多相关《Java Web 服务 Axis2 WS-Security基础(12页珍藏版)》请在金锄头文库上搜索。
1、Java Web 服务: Axis2 WS-Security基础本文来自编程入门网:http:/ Rampart 安全模块添加到 Apache Axis2 并开始在 Web 服务中使用 WS-Security 特性。安全性对于众多企业服务来说都是一个重要需求。并且,尝试实现自己的安全性也颇具风险,因为任 何微小的疏忽都会导致严重的安全漏洞。这些特征引起了人们对安全处理标准化的兴趣,许多专家为标准 作出贡献并避免出现任何个人的疏漏。基于 SOAP 的 Web 服务可以使用广泛支持的 WS-Security 和相关 标准来满足它们的安全需求,允许针对每种服务相应地配置安全性。Apache Axis
2、2 通过 Rampart 模块支持这些安全标准(见 参考资料)。在本文中,您将看到如何为 Axis2 安装、配置和使用 Rampart 以实现基本的安全功能,即在一个服务请求中发送用户名和密码。在 本系列的后续文章中,您将理解如何使用 Rampart 实现更加复杂的安全性。WS-SecurityWS-Security 是向 SOAP Web 服务消息交换添加安全性的一种标准(见 参考资料)。它使用一个 SOAP 消息头部元素将安全信息附加到消息中,使用令牌(token)的形式传递不同类型的声明(包括名称 、身份、密匙、组、特权、功能等等)以及加密和数字签名信息。WS-Security 支持多种
3、形式的令牌、多 个可信任域、多种签名格式和多种加密技术,因此大多数情况下头部信息需要针对每种内容包含特定的格 式和算法识别。附加的信息会导致头部信息产生复杂的结构,如 清单 1 所示(进行了大量编辑) 包 含签名和加密的样例消息:清单 1. 包含签名和加密的样例消息2006- 07-11T21:59:32Z2006-07- 12T06:19:32Z MIIEC56MQswCQY. LlYsHyhNnOVA9Aj7. g+A2WJhsoGBKUydZ9Za. lKjc5nyLQDZAIu/hZb4B6mLquow= . TiLmWvlz3mswinLVQn58BgYS0368. mirmi0Ku
4、FEEI56eu2U3cICz. 在本文中,您将看到一些 WS-Security 头部示例,并且只包含单个令牌。本系列下一篇文章将更进一 步,探讨 清单 1 所示的复杂结构类型。WS-Security 应用于实际的 SOAP 消息交换。服务实现可以检验 WS-Security 是否恰当应用于传入的 消息,但是客户机需要提前知道它们必须实现什么才能使用服务。由于 WS-Security 的复杂性以及所支 持的选项有限,因此仅使用文本描述很难实现这个目的,而手动配置 WS-Security 处理极容易出现错误 。WS-Policy 是一个用于为 Web 服务指定扩展需求的通用结构,而 WS-Sec
5、urityPolicy 是一个专门针对 WS-Security 支持的 WS-Policy 扩展。这两者合起来可以以机器可读的方式描述 WS-Security 需求。 WS-Policy 和 WS-SecurityPolicy 信息可以单独使用,也可以直接嵌入到 Web Services Description Language (WSDL) 文档内部,这样 Web 服务框架就可以将它们自动配置为服务的需求。Rampart 简介Rampart 是 Axis2 的安全模块,支持 WS-Security、WS-SecurityPolicy、WS-SecureConversation 和 WS-Tr
6、ust。在本文中,您将只查看 Rampart 的 WS-Security 和 WS-SecurityPolicy 功能;后续文章 将讨论其他特性。由于 Rampart 是以模块形式实现(实际上是一对模块 rampart.mar 和 rahas.mar),它将插入到 Axis2 处理框架中并在出站和入站处理的特定点拦截消息,检查对消息的修改或根据需要对消息作出修改 ,从而完成工作。安装 RampartRampart 附带了一些 .jar 文件(在发行版的 lib 目录中),以及一对 .mar 模块文件(位于 dist 目录中)。您必须将 .jar 文件添加到类路径中才能对 Axis2 使用 Ra
7、mpart,并且必须将 .mar 文件添 加到类路径或 Axis2 库结构中。处理 Rampart .jar 和 .mar 文件的最简单方法是将它们添加到 Axis2 安装中。可以从 Rampart lib 目录中直接将 .jar 文件复制到 Axis2 lib 目录,从 Rampart dist 目录中直接将 .mar 文件复制到 Axis2 库/模块目录中。(还可以使用 Ant build.xml 在 Rampart 样例目录中将文件复制给 Axis2 安装 。只需要将 AXIS2_HOME 环境变量设置为 Axis2 安装目录并从打开 Rampart 样例目录的控制台运行 ant )。对于众多 WS-Security 特性,您还需要向 JVM 安全配置添加 Bouncy Castle 安全提供程序,向 Axis2 安装添加 Bouncy Castle .jar。本系列后续文章中涉及的其他安全特性(不包括本文将介绍的 UsernameToken)需要使用这一步骤。由于某些安全算法涉及专利问题,Bouncy Castle .jar 可以从 Rampart 独立下载(见 参考资料)。为您的 Java