Java Web服务 - Axis2 WS-Security签名和加密 - 编程入门网
用于每个消息的时间戳(用于保护服务免受重播式攻击,在这种攻击下,消息在传输中被捕获并被重新提交,从而扰乱或中断服务)。<sp:OnlySignEntireHeadersAndBody> 元素指定签名将在消息的整个头部或消息体中完成,而不是在某些嵌套的元素(另一种安全措施,防止发生重写消息的攻击类型)中完成。<sp:SignedParts> 元素识别将要被签名的消息部分 — 在本例中为 SOAP 消息 Body。
清单 1 中的 WS-Policy 文档的最后一部分提供了特定于 Rampart 的配置信息。这是 “Axis2 WS-Security 基础” 中使用的 Rampart 配置的更加复杂的版本,这一次包括了一个 <ramp:user> 元素来识别将用于消息签名的密匙,以及一个 <ramp:signatureCrypto> 元素,用于配置包含客户机私有密匙和服务器证书的 keystore。被引用的 keystore 文件必须在运行时提供给类路径。在示例应用程序中,keystore 文件在构建期间被复制到 client/bin 目录中。 密码回调类与 “Axis2 WS-Security 基础” 中使用的类稍有不同。在那篇文章中,只需要在服务器使用密码回调,并且只需要检验(用于明文式 UsernameToken)或设置(用于散列式 UsernameToken)与特定用户名匹配的密码。对于本文使用的公开密匙加密,回调必须提供用于保护 keystore 内的私有密匙的密码。并且需要对客户机(为客户机私有密匙提供密码)和服务器(为服务器私有密匙提供密码)使用单独的回调。清单 2 展示了回调的客户端版本: 清单 2. 客户机密码回调
清单 2 中的回调旨在支持使用同一个公开-私有密匙对进行签名和解密,因此将在两种情况下进行检查并对任意一种情况返回相同的密码。 清单 1 中的 WS-Policy 用于客户机,与此相对应的是用于服务器的 WS-Policy(示例代码中的 sign-policy-server.xml),两者只在 Rampart 配置的细节方面略有不同。同样,清单 2 密码回调类的服务器版本只在标识符值和返回的密码方面有所差异。 运行示例应用程序 build.properties 文件引用了将由示例应用程序使用的 client.policy 和 server.policy 文件。在文件的补充版中分别被设置为 sign-policy-client.xml 和 sign-policy-server.xml,因此您应当只需要构建应用程序。通过将控制台打开到 jws05code 目录并输入 ant,您可以使用 Ant 完成任务。如果所有内容均配置正确,那么应当在 jws05code 目录中得到一个 library-signencr.aar Axis2 服务归档文件。通过使用 Axis2 Administration 页面上传 .aar 文件,将该服务部署到您的 Axis2 服务器安装中,然后通过在控制台输入 an |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |