Doing HTTPS Communication with http:outbound-gateway
In Spring Integration if you have to do
https communication when using http:outbound-gateway, you need to use the following trick,
<int-http:outbound-gateway id="my.outbound.gateway" request-channel="request-channel" reply-channel="reply-channel" url="https://localhost:8443/myservice/myService" http-method="POST" expected-response-type="java.lang.String"> </int-http:outbound-gateway>
Now you need to pass the keystore and trust store of the client and server as follows,
<bean id="trustStore">
<property name="targetObject" value="#{@systemProperties}" />
<property name="targetMethod" value="putAll" />
<property name="arguments">
<props>
<prop key="javax.net.ssl.trustStore"><jks key location></prop>
<prop key="javax.net.ssl.keyStorePassword">password</prop>
</props>
</property>
</bean>
<bean id="keystore">
<property name="targetObject" value="#{@systemProperties}" />
<property name="targetMethod" value="putAll" />
<property name="arguments">
<props>
<prop key="javax.net.ssl.keyStore"><jks key location></prop>
<prop key="javax.net.ssl.keyStorePassword">password</prop>
</props>
</property>
</bean>There is also another way as mentioned in this article @ http://forum.springsource.org/showthread.php?115198-HTTPS-in-http-outbound-gateway
I hope this blog helped you.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





