使用 Spring RestTemplate 访问 Https Rest 服务

新手上路,请多包涵

任何人都可以向我提供代码示例以使用 Spring Rest 模板访问使用 HTTPS 保护的其余服务 URL 吗?

我有证书、用户名和密码。服务器端使用基本身份验证,我想创建一个可以使用提供的证书、用户名和密码(如果需要)连接到该服务器的客户端。

原文由 zdesam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 608
1 个回答
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(new File(keyStoreFile)),
  keyStorePassword.toCharArray());

SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(
  new SSLContextBuilder()
    .loadTrustMaterial(null, new TrustSelfSignedStrategy())
    .loadKeyMaterial(keyStore, keyStorePassword.toCharArray())
    .build(),
    NoopHostnameVerifier.INSTANCE);

HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(
  socketFactory).build();

ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(
  httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
MyRecord record = restTemplate.getForObject(uri, MyRecord.class);
LOG.debug(record.toString());

原文由 Headroller 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题