In Spring Integration when using http:outbound-gateway if you have to do https communication, you need to do 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.
Hi, Could you please let me know the configuration on client side which http outbound adapter as beans keystore and truststore are missing the classes. If you have complete example. Could you upload the code. Thanks
Thanks, I’m able to configure and it is working fine. Using truststore is enough for communicating with outbound adapter.