java-使用Apache CXF签名和加密SOAP消息

我也在尝试使用Apache CXF编写“安全Hello World” Web服务.我应该注意,我是Java和WS- *的新手.

基本上,我想做的是一个hello-world Web服务,其中包含使用x.509证书签名和加密的往返于此Web服务的肥皂消息.

我已经读过the tutorial on Apache CXF site about WS-Security,但是;我想使用WS-SecurityPolicy代替Interceptors.

谁能指出我正确的方向?

解决方法:

这是一个有关使用Apache CXF的详细信息的博客:Adding X.509 security headers to Apache CXF SOAP calls (WS-SecurityPolicy method)

还有一个tutorial,其源代码配置为使用WS-SecurityPolicy方法.

编辑:修复断开的链接,已将链接添加到教程.

现在,可以很好地概述CXF site上WS-SecurityPolicy的各种设置,并且它引用了上面的链接.

简而言之(如果链接再次消失),除了对cxf.xml和cxf-servlet.xml进行了一些更改之外,WS-SecurityPolicy的配置类似于CXF Wiki上描述的CXF interceptor method.

cxf.xml

   <jaxws:client name="{http://myport" createdFromAPI="true">
            <!-- You will need to add the corresponding values to a properties file -->
            <jaxws:properties>
                <entry key="ws-security.callback-handler" value="client.ClientKeystorePasswordCallback"/>        
                <entry key="ws-security.encryption.properties" value=keystore.properties"/>
                <entry key="ws-security.signature.properties" value="keystore.properties"/>
                <entry key="ws-security.encryption.username" value="myservicekey"/>
            </jaxws:properties>

cxf-servlet.xml

  <jaxws:properties>
            <entry key="ws-security.callback-handler">
                <ref bean="myPasswordCallback"/>
            </entry>
            <entry key="ws-security.encryption.properties" value="serviceKeystore.properties"/>
            <entry key="ws-security.signature.properties" value="serviceKeystore.properties"/>
            <entry key="ws-security.encryption.username" value="useReqSigCert"/>
        </jaxws:properties> 
上一篇:Apache CXF wsdl2java 工具使用


下一篇:java – 使用Spring配置CXF以使用MOXY进行XML编组/解组