Java 使用Apache CXF对SOAP消息进行签名和加密
我还试图使用ApacheCXF编写一个“安全的HelloWorld”web服务;我应该注意到,我对Java和WS-*有些陌生 基本上,我想做的是一个hello world web服务,其中包含使用x.509证书签名和加密的soap消息 我已经读过了,但是;我想使用WS-SecurityPolicy而不是拦截器Java 使用Apache CXF对SOAP消息进行签名和加密,java,web-services,cxf,Java,Web Services,Cxf,我还试图使用ApacheCXF编写一个“安全的HelloWorld”web服务;我应该注意到,我对Java和WS-*有些陌生 基本上,我想做的是一个hello world web服务,其中包含使用x.509证书签名和加密的soap消息 我已经读过了,但是;我想使用WS-SecurityPolicy而不是拦截器 有人能给我指出正确的方向吗?因为web服务是通过HTTP工作的,所以您可以使用HTTPS协议来保护它们 这里有一个资源可以帮助您找到正确的方向: 虽然此资源是用于JAX-WS的,但您应该发
有人能给我指出正确的方向吗?因为web服务是通过HTTP工作的,所以您可以使用HTTPS协议来保护它们 这里有一个资源可以帮助您找到正确的方向: 虽然此资源是用于JAX-WS的,但您应该发现,其中有很多将遗留到ApacheCXF
干杯。这里有一个博客,详细介绍了如何使用Apache CXF: 还有一个配置了使用WS-SecurityPolicy方法的源代码 编辑:修复断开的链接,将链接添加到教程 上的WS-SecurityPolicy的各种设置现在有了一个很好的概述,它引用了上面的链接 简言之(如果链接再次消失),WS-SecurityPolicy的配置与CXF wiki上描述的类似,只是在CXF.xml和CXF-servlet.xml中有一些更改: 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>
不幸的是,提供的链接不再起作用,这使得这个答案不再有用。显然,他们在JRoller站点上做了一些更改,所以URL发生了更改。我确实找到了原始文档,在这样做的过程中,我注意到他们甚至在ApacheCXF站点上包含了更多关于此的文档,并包含了指向我上面引用的教程的链接。
<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>