【问题标题】:Spring - OAuth2AccessTokenSupport Override rest template custom SSLSocketFactorySpring - OAuth2AccessTokenSupport 覆盖其余模板自定义 SSLSocketFactory
【发布时间】:2017-07-17 17:44:29
【问题描述】:
我正在使用ClientCredentialsAccessTokenProvider 获取客户端凭据的OAuth 访问令牌。但是,accessTokenURI 是 https。
覆盖默认RestTemplate 以提供自定义SSLSocketFactory 的推荐方法是什么。
OAuth2AccessTokenSupport 上的 RestTemplate 被标记为私有,没有任何设置器。
【问题讨论】:
标签:
spring-mvc
spring-security
spring-security-oauth2
resttemplate
【解决方案1】:
啊,没关系,
您可以在 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);