我正在尝试使用一个安全的api。
通过在头和证书中提供客户端id/密钥,安全api调用可以很好地与postman api配合使用。
当通过spring以编程方式执行时,我已经从私钥和证书创建了一个keystore(.jks文件)。尝试通过restemplate对api进行post调用(使用json请求体和响应)。
@Bean
RestTemplate restTemplate() throws Exception {
SSLContext sslContext = new SSLContextBuilder()
.loadTrustMaterial(ResourceUtils.getFile("classpath:portal.jks"), "portalpwd".toCharArray())
.build();
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
HttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(socketFactory)
.build();
HttpComponentsClientHttpRequestFactory factory =
new HttpComponentsClientHttpRequestFactory(httpClient);
return new RestTemplate(factory);
}
但我不能在创建此请求时包含客户端id和密钥,并建议使用上述凭据连接到api的其他更好方法。
感谢您的帮助和支持。
暂无答案!
目前还没有任何答案,快来回答吧!