mp:RampartConfig> 元素以提供安全运 行时参数。Rampart 配置信息在 STS 和服务自身之间共享。
清单 2 显示本文中性能测试中用到 的 Rampart 客户端配置。这与此前文章中 WS-Security 非对称签名和加密的 Axis2 例子中的配置一致 。
清单 2. 策略中的 Axis2/Rampart 客户端配置
<wsp:Policy ...>
<wsp:ExactlyOne>
<wsp:All>
...
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
<ramp:user>clientkey</ramp:user>
<ramp:encryptionUser>serverkey</ramp:encryptionUser>
<ramp:passwordCallbackClass
>com.sosnoski.ws.seismic.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:encryptionCrypto>
<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:encryptionCrypto>
</ramp:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Java Web服务: WS-SecureConversation性能(4)
时间:2011-10-16 IBM Dennis Sosnoski
清单 3 显示的是用于配置 Rampart 和激活 WS-Addressing 的 Axis2 客户端代码。Rampart 配置使用此前 Axis2 例子中同样的代码,除了在粗体行中添加了通过启用 addressing 模块激活 WS-Addressing。
清单 3. Axis2 客户端代码
Options options = client.getOptions();
options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
client.engageModule("addressing");
client.engageModule ("rampart");
Axis2 服务器配置包含在服务档案 (AAR) 文件的 META-INF/services.xml 文件中。至于 Axis2 客户端,基本的 Rampart 配置与之前 WS-Security 非对称和加密的 Axis2 例子中 一致。激活服务的 STS 还需要补充一些东西,如清单 4 中已编辑版本的粗体部分:
清单 4. Axis2 服务器 services.xml 添加项
<serviceGroup>
<service name="seismic-signencr">
...
<module ref="rampart"/>
<module ref="
|