Java Web服务 - Axis2 WS-Security签名和加密 - 编程入门网
中。
秘密密匙和对称加密 尽管使用非对称加密的公开密匙加密构成了许多有用 WS-Security 特性的基础,但是老式的秘密密匙加密仍然发挥着重要的作用。要实现相同程度的保护,非对称加密算法往往要比基于秘密密匙(同一个密匙同时用于加密和解密,意味着这个密匙必须始终保密)的对称算法涉及更多的计算量。由于这个原因,经常将这两种技术结合使用:高开销的非对称加密用于保障秘密密匙交换的安全性,秘密密匙然后又可用于低开销的对称加密。本文后面介绍 WS-Security 消息加密时,您将看到一个这样的示例。 设置 本文使用了与 “Axis2 WS-Security 基础” 相同的示例应用程序,该应用程序展现了如何使用 Axis2 和 Rampart 实现 WS-Security UsernameToken。但是,需要作出一些修改来支持使用 WS-Security 公开密匙加密特性,因此本文附带了一个单独的代码包(见 下载 )。 示例代码的根目录为 jws05code。该目录包含了以下内容: 一个 Ant build.xml 文件 一个 Ant build.properties 文件,它配置了示例应用程序的操作 library.wsdl 文件为示例应用程序提供了服务定义 log4j.properties 文件用于配置客户端登录 一些属性定义 XML 文件(所有名为 XXX-policy-client.xml 或 XXX-policy-server.xml 的文件) 在开始使用示例代码前,需要完成以下操作: 编辑 build.properties 文件,设置 Axis2 安装的路径。 确保 Axis2 安装已经通过 Rampart 代码进行了更新,如 “Axis2 WS-Security 基础” 的 安装 Rampart 一节所述。(一种好方法就是查看 repository/modules 目录中的 rampart-x.y.mar 模块文件)。 将 org.bouncycastle.jce.provider.BouncyCastleProvider Bouncy Castle 安全提供者(用于示例代码中使用的公开密匙加密特性)添加到 JVM 安全配置中(lib/security/java.security 文件)。 将 Bouncy Castle JAR(名为 bcprov-jdkxx-vvv.jar,其中 xx 表示 Java 版本,vvv 表示 Bouncy Castle 代码版本)同时 添加到 Axis2 安装的 lib 目录和 Axis2 服务器应用程序的 WEB-INF/lib 目录。 Java Web服务 - Axis2 WS-Security签名和加密(3)时间:2011-02-02 IBM Dennis Sosnoski现在,您已经准备好构建示例应用程序并尝试下一节将介绍的安全示例。 对消息进行签名 签名要比 “Axis2 WS-Security 基础” 中的 UsernameToken 示例用到更多规范。您需要: 识别用于在每个方向上创建签名的私有/公开密匙对,提供用于访问 keystore 和私有密匙的密码。 指定用于 XML 标准化、摘要生成和实际签名的算法集。 指定将消息的哪些部分包含到签名中。 这些信息中的一部分被作为配置数据处理,被嵌入到服务的 WS-SecurityPolicy 文档中。其他部分被包含到运行时消息交换中。 清单 1 展示了一个 WS-Policy 文档,用于将 Axis2 客户机配置为对消息使用签名。(清单 1 进行了编辑,以符合页面的宽度。在示例代码中可以查看 sign-policy-client.xml 的完整文本)。 清单 1. 用于签名(客户机)的 WS-Policy/WS-SecurityPolicy
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |