Java Web 服务: WS-Security 的细粒度使用
2009-11-05 00:00:00 来源:WEB开发网代码下载中包含的 Ant build.xml 将处理从 WSDL 生成客户机和服务器代码、编译代码,以及生成服务 AAR 文件。它还会将 Rampart 配置策略(即下载中的 rampart-client-policy.xml,位于根目录)复制到客户机类路径,同时执行一些服务器端策略处理,下节将进行讨论。
服务器端使用
如果希望将服务器端 Rampart 配置与 WSDL 分离(通常是一个很不错的主意!),需要将它包含到 services.xml 文件中。在早期文章中我们执行了这个操作,以获得包括 Rampart 配置的完整 WS-SecurityPolicy 配置,并作为一个整体应用到服务。这一次,Rampart 配置策略是被添加到 services.xml 的唯一一个部分,并且是在操作级别完成的。
清单 4 展示了包含有 Rampart 配置的策略文档。与客户端的对应策略相同,这里使用了与 “Axis2 WS-Security 签名和加密” 相同的策略,现在被提取到一个独立的策略文档中。
清单 4. Rampart 服务器配置策略<wsp:Policy xmlns:wsu=
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
<wsp:ExactlyOne>
<wsp:All>
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
<ramp:user>serverkey</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"
>server.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>
更多精彩
赞助商链接