我在使用带有相互身份验证的 spring Resttemplate 发出发布请求时收到上述错误。
@Bean
public RestTemplate restTemplate() throws UnrecoverableKeyException,
NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException, CertificateException {
KeyStore clientStore = KeyStore.getInstance("PKCS12");
clientStore.load(new FileInputStream(pfxFile), pfxPass.toCharArray());
SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
sslContextBuilder.useProtocol("TLS");
sslContextBuilder.loadKeyMaterial(clientStore, pfxPass.toCharArray());
sslContextBuilder.loadTrustMaterial(new TrustSelfSignedStrategy());
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContextBuilder.build());
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(sslConnectionSocketFactory)
.build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactory.setConnectTimeout(Integer.parseInt(timeOut)); // 10 seconds
requestFactory.setReadTimeout(Integer.parseInt(timeOut)); // 10 seconds
RestTemplate restTemplate = new RestTemplate(requestFactory);
restTemplate.setInterceptors( Collections.singletonList(new RequestResponseLoggingInterceptor()));
return restTemplate;
}
Run Code Online (Sandbox Code Playgroud)
使用resttemplate的代码如下
public ResponseEntity<OauthResponse> getOauthToken(String clientScope,
String BasicAuthUser,String BasicAuthPass){
String accessToken = Base64.getEncoder().encodeToString((BasicAuthUser+":"+BasicAuthPass).getBytes()); …
Run Code Online (Sandbox Code Playgroud)