Java Web 服务: Axis2 WS-Security 签名和加密
2009-11-05 00:00:00 来源:WEB开发网签名要比 “Axis2 WS-Security 基础” 中的 UsernameToken 示例用到更多规范。您需要:
识别用于在每个方向上创建签名的私有/公开密匙对,提供用于访问 keystore 和私有密匙的密码。
指定用于 XML 标准化、摘要生成和实际签名的算法集。
指定将消息的哪些部分包含到签名中。
这些信息中的一部分被作为配置数据处理,被嵌入到服务的 WS-SecurityPolicy 文档中。其他部分被包含到运行时消息交换中。
清单 1 展示了一个 WS-Policy 文档,用于将 Axis2 客户机配置为对消息使用签名。(清单 1 进行了编辑,以符合页面的宽度。在示例代码中可以查看 sign-policy-client.xml 的完整文本)。
清单 1. 用于签名(客户机)的 WS-Policy/WS-SecurityPolicy<!-- Client policy for signing all messages, with certificates included in each
message -->
<wsp:Policy wsu:Id="SignOnly"
xmlns:wsu="http://.../oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:AsymmetricBinding
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:InitiatorToken>
<wsp:Policy>
<sp:X509Token
sp:IncludeToken="http://.../IncludeToken/AlwaysToRecipient"/>
</wsp:Policy>
</sp:InitiatorToken>
<sp:RecipientToken>
<wsp:Policy>
<sp:X509Token
sp:IncludeToken="http://.../IncludeToken/AlwaysToInitiator"/>
</wsp:Policy>
</sp:RecipientToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:TripleDesRsa15/>
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict/>
</wsp:Policy>
</sp:Layout>
<sp:IncludeTimestamp/>
<sp:OnlySignEntireHeadersAndBody/>
</wsp:Policy>
</sp:AsymmetricBinding>
<sp:SignedParts xmlns:sp="http://.../ws-securitypolicy/200702">
<sp:Body/>
</sp:SignedParts>
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
<ramp:user>clientkey</ramp:user>
<ramp:passwordCallbackClass
>com.sosnoski.ws.library.adb.PWCBHandler</ramp:passwordCallbackClass>
<ramp:signatureCrypto>
<ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
<ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type"
>JKS</ramp:property>
<ramp:property name="org.apache.ws.security.crypto.merlin.file"
>client.keystore</ramp:property>
<ramp:property
name="org.apache.ws.security.crypto.merlin.keystore.password"
>nosecret</ramp:property>
</ramp:crypto>
</ramp:signatureCrypto>
</ramp:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
更多精彩
赞助商链接