技术开发 频道

Java Web 服务: Axis2 WS-Security 基础

  Rampart 简介

  Rampart 是 Axis2 的安全模块,支持 WS-Security、WS-SecurityPolicy、WS-SecureConversation 和 WS-Trust。在本文中,您将只查看 Rampart 的 WS-Security 和 WS-SecurityPolicy 功能;后续文章将讨论其他特性。

  由于 Rampart 是以模块形式实现(实际上是一对模块 — rampart.mar 和 rahas.mar),它将插入到 Axis2 处理框架中并在出站和入站处理的特定点拦截消息,检查对消息的修改或根据需要对消息作出修改,从而完成工作。

  安装 Rampart

  Rampart 附带了一些 .jar 文件(在发行版的 lib 目录中),以及一对 .mar 模块文件(位于 dist 目录中)。您必须将 .jar 文件添加到类路径中才能对 Axis2 使用 Rampart,并且必须将 .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 运行时下载合适的 .jar 版本,并向 Axis2 lib 目录添加 .jar。您随后需要修改 Java 安装的安全策略来使用 Bouncy Castle 代码,需要向 Java 运行时的 lib/security 目录中的 java.security 文件添加一行代码。查找文件中具有不同 security.provider 行的部分,然后添加以下代码行:

security.provider.99=org.bouncycastle.jce.provider.BouncyCastleProvider

  security.provider 行在文件中的顺序并不重要,但是最好将其添加到实现预定义安全提供程序的代码行的后面。

  要在 Axis2 服务器安装中使用 Rampart 代码,需要创建一个新的 axis2.war 文件,其中包括新添加的 Rampart .jar 和 .mar 文件。可以使用 webapp 目录中提供的 Ant build.xml 来创建 axis2.war,假设您做了一处修改:删除文件末尾的 行。然后在控制台中打开 Axis2 webapp 目录并运行 ant。运行完 build.xml 后,会发现创建的 axis2.war Web 应用程序出现在 Axis2 安装的 dist 目录中。

0
相关文章