Spring 集成:HTTP 出站网关 SSL



我需要为<int-http:outbound-gateway>实现https。我的代码如下是否足够?我应该在代码中添加什么?

      <int-http:outbound-gateway id="oeactivatedGateway"
         url="${trigger.url}" http-method="DELETE" charset="UTF-8"
         reply-timeout="${ws.reply.timeout}" mapped-request-headers="Authorization,Content-Type,Accept"
         request-channel="channel.authorized.request" reply-channel="channel.reply"
         request-factory="requestFactory">
<bean id="requestFactory"
         class="org.springframework.http.client.SimpleClientHttpRequestFactory">
         <property name="proxy">
                <bean id="proxy" class="java.net.Proxy">
                       <constructor-arg>
                              <util:constant static-field="java.net.Proxy.Type.HTTP" />
                       </constructor-arg>
                       <constructor-arg>
                              <bean class="java.net.InetSocketAddress">
                                    <constructor-arg value="${http.proxy.address}" />
                                    <constructor-arg value="${http.proxy.port}" />
                              </bean>
                       </constructor-arg>
                </bean>
         </property>
   </bean>
"

实现https"是什么意思?是否允许通过网关执行 HTTPS 请求?与弹簧集成无关。

您只需要遵循标准的Java SSL支持--Djavax.net.ssl.trustStore-Djavax.net.ssl.keyStore。最后,应用程序端将无事可做。

默认情况下,它不依赖于ClientHttpRequestFactory实现。

即使您可以从应用程序上下文中以某种方式自定义它,例如:

CloseableHttpClient httpClient = 
  HttpClients.custom()
             .setSSLHostnameVerifier(new NoopHostnameVerifier())
             .build();
HttpComponentsClientHttpRequestFactory requestFactory = 
  new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);

它与弹簧集成无关,您可以随意继续您的任何要求。由于一切都是Spring,您将能够将所有内容连接在一起,让您的<int-http:outbound-gateway>使用HTTPS。

最新更新