Spring - OAuth2AccessTokenSupport覆盖rest模板自定义SSLSocketFactory

时间:2017-02-27 07:42:33

标签: spring-mvc spring-security spring-security-oauth2 resttemplate

我使用ClientCredentialsAccessTokenProvider获取客户端凭据的OAuth访问令牌。但是,accessTokenURIhttps。 建议的方法是覆盖默认RestTemplate以提供自定义SSLSocketFactory

RestTemplate上的OAuth2AccessTokenSupport被标记为私有,没有任何设置者。

1 个答案:

答案 0 :(得分:0)

啊,没关系, 你可以在RestTemplate上设置reqestFactory。

代码如下,

Create the Request Factory,

RequestConfig timeoutConfig = RequestConfig.custom().setConnectTimeout(CONNECT_TIMEOUT).build();

CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslConnectionSocketFactory)
                        .setDefaultRequestConfig(timeoutConfig)                      .disableCookieManagement().setMaxConnPerRoute(CONNECTION_MAX).setMaxConnTotal(CONNECTION_MAX).build();
HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);


 ClientCredentialsAccessTokenProvider accessTokenProvider = new ClientCredentialsAccessTokenProvider();
        accessTokenProvider.setRequestFactory(clientHttpRequestFactory);