如何在http:outbound-gateway中配置单向SSL

时间:2017-09-18 05:01:42

标签: ssl spring-integration

有关SSL支持的spring集成参考中有章31.10.2,但是我无法使用http:outbound-gateway,我可以知道是否有单向ssl的示例配置与http: outbound-gateway让我有参考?

感谢

2 个答案:

答案 0 :(得分:0)

为TCP / IP组件提供了SSL支持,是的,这肯定不适用于HTTP。

Spring Integration HTTP出站网关完全基于Spring Web RestTemplate。因此,使用SSL可以实现的功能完全适用于Spring Integration HTTP。

我建议您查看HttpComponentsClientHttpRequestFactory<int-http:outbound-gateway>可以通过request-factory简单地注入HttpClient。反过来,这个可以提供Apache Common CloseableHttpClient httpClient = HttpClients.custom() .setSSLHostnameVerifier(new NoopHostnameVerifier()) .build(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); requestFactory.setHttpClient(httpClient); 。 SSL将在那里配置:

DECLARE @b DATE = '20170918'   --put your date here

DECLARE @a DATE


Print('First day of Current Week:')
set @a = dateadd(ww, Datediff(ww,0,@b),0)
Print(@a)
Print('')

Print('Last day of Current Week:')
set @a = dateadd(ww, Datediff(ww,0,@b)+1,-1)
Print(@a)
Print('')

--additional queries
SET @a =dateadd(mm, Datediff(mm,0,@b),0)
Print('First day of Current Month:')
Print(@a)
Print('')

set @a = dateadd(mm, Datediff(mm,0,@b)+1,-1)
Print('Last day of Current Month:')
Print(@a)
Print('')

Print('First day of Last Month:')
set @a = dateadd(mm, Datediff(mm,0,@b)-1,0)
Print(@a)
Print('')

Print('Last day of Last Month:') 
set @a = dateadd(mm, Datediff(mm,0,@b),-1)
Print(@a)
Print('')


Print('First day of Last Week:')
set @a =  dateadd(ww, Datediff(ww,0,@b)-1,0)
Print(@a)
Print('')

Print('Last day of Last Week:')
set @a =  dateadd(ww, Datediff(ww,0,@b),-1)
Print(@a)

答案 1 :(得分:0)

以下是基于Artem Bilan的回复的配置。 需要为SSL定义2个bean

<http:outbound-gateway expected-response-type="java.lang.String"
                               url="${gateway.host}/SearchAll"
                               http-method="POST"
                               extract-request-payload="true"
                               request-factory="sslFactory">
        </http:outbound-gateway>


    <!--SSL-->
    <bean id="sslFactory" class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
        <constructor-arg ref="httpClient"/>
    </bean>
    <bean id="httpClient" class="com.oocl.frm.dmtp.component.ssl.HttpClientFactory" />