java - 使用 Spring WebserviceTemplate 发送安全请求

标签 java spring

我使用 spring ws 模板创建了一个 Web 服务客户端。这按 http 协议(protocol)的预期工作。现在我想让它与 https 一起使用。我有相关的客户端 key 存储(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,应用程序将抛出“org.springframework.ws.client.WebServiceTransportException”。

最佳答案

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

设置 messageSender bean 的 httpClient 属性。

请参阅我的另一篇文章,了解如何配置 httpClient bean 以解决自签名证书问题。 sending https post request with post data using spring web

无需将 key 导入 keystore 。

关于java - 使用 Spring WebserviceTemplate 发送安全请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428107/

相关文章:

java - 如何通过 Hibernate 用初始值从数据库中填充表

java - imageview android的无限动画

java - Collectors (Java) 中的 groupingby 和映射有什么区别?

Spring MVC 什么是服务组件?

java - Spring 3 注入(inject) Hibernate Session 的最佳方法

java - Java 接口(interface)类型转换

java - 在 Swing 面板之间传递信息?

java - 需要帮助在 IntelliJ IDEA 中使用 Maven 设置简单的 Spring Boot jsp 应用程序

spring - 集成测试和 Spring 应用程序事件

java - Spring Boot 应用程序未启动