使用Spring WebserviceTemplate发送安全请求

时间:2013-05-07 20:36:04

标签: java spring

我使用spring ws模板创建了一个Web服务客户端。这与http协议的预期一致。现在我想让它与https一起使用。我有相关的客户端密钥库(jks文件),现在我想配置消息发送者发送安全请求。 你能帮我解决一下这个问题吗?

这是我的spring bean配置:

<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory"/>
<bean id="tokenrMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="com.token.dto.v1" />
</bean>
<bean id="tokenServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <constructor-arg ref="messageFactory" />
    <property name="marshaller" ref="tokenrMarshaller"></property>
    <property name="unmarshaller" ref="tokenrMarshaller"></property>
    <property name="messageSender">
        <bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender" />    
    </property>
    <property name="defaultUri" value="${token.url}" />       
</bean>

如果我将URL从http更改为https w / o任何配置,应用程序将抛出“org.springframework.ws.client.WebServiceTransportException”。

1 个答案:

答案 0 :(得分:0)

请参阅http://docs.spring.io/spring-ws/site/apidocs/org/springframework/ws/transport/http/HttpComponentsMessageSender.html#setHttpClient%28org.apache.http.client.HttpClient%29

的javadoc

设置messageSender bean的httpClient属性。

请参阅我的其他帖子,了解如何配置httpClient bean以解决自签名证书问题。 sending https post request with post data using spring web

无需将密钥导入密钥库。