我已经阅读了关于Securing your Web services with Spring-WS的Spring文档,但它看起来好像这篇文章只是关于服务器端而不是客户端。实际上,对于Wss4jSecurityInterceptor
服务器端,它工作正常,但我需要向外部Web服务签署请求。
所以,第一个问题。我是对的,Spring Web Services文档的第7章只适用于服务器端吗?
二。使用Spring以类似(简单,优雅)的方式向服务器端的SOAP请求添加安全性(如已签名的头文件),以及如何在服务器端完成它?
我找到了这个question,但看起来签名是使用Apache CXF完成的,而article签名是以自制的方式完成的。
提前致谢。
答案 0 :(得分:2)
好吧,我担心我会回答自己的问题:
第一个:否。 Spring Web Services文档的第7章涉及双方,客户端和服务器。
第二个:根据fisrt问题的答案, YES ,如Spring Web Services文档第7章所述。
我的错误是我以这种方式宣布拦截器:
<sws:interceptors>
<ref bean="wsSecurityInterceptor" />
</sws:interceptors>
这个拦截器只会影响服务器端的Web服务。对于客户来说,应该以这种方式完成:
<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<property name="marshaller" ref="marshaller" />
<property name="unmarshaller" ref="marshaller" />
<property name="defaultUri"
value="http://localhost:8080/ws-demo/myws" />
<property name="interceptors">
<list>
<ref bean="wsSecurityInterceptor" />
</list>
</property>
</bean>