this.webCLient = WebClient.builder()
.baseUrl("https://some-rest-api.com")
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON.toString())
.build();
this.webClient.get()
.uri("/getData")
.exchange()
.flatMap(clientResponse -> {
System.out.println(clientResponse);
return clientResponse.bodyToMono(MyClass.class);
});
javax.net.ssl.SSLException: Received fatal alert: handshake_failure
我花了一些时间才找到托马斯答案中缺少的那部分。
在这里:
public static SslContext getTwoWaySslContext() {
try(FileInputStream keyStoreFileInputStream = new FileInputStream(ResourceUtils.getFile(clientSslKeyStoreClassPath));
FileInputStream trustStoreFileInputStream = new FileInputStream(ResourceUtils.getFile(clientSslTrustStoreClassPath));
) {
KeyStore keyStore = KeyStore.getInstance("jks");
keyStore.load(keyStoreFileInputStream, clientSslKeyStorePassword.toCharArray());
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
keyManagerFactory.init(keyStore, clientSslKeyStorePassword.toCharArray());
KeyStore trustStore = KeyStore.getInstance("jks");
trustStore.load(trustStoreFileInputStream, clientSslTrustStorePassword.toCharArray());
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("SunX509");
trustManagerFactory.init(trustStore);
return SslContextBuilder.forClient()
.keyManager(keyManagerFactory)
.trustManager(trustManagerFactory)
.build();
} catch (Exception e) {
log.error("An error has occurred: ", e);
}
return null;
}
HttpClient httpClient = HttpClient.create().secure(sslSpec -> sslSpec.sslContext(SslUtil.getTwoWaySslContext()));
ClientHttpConnector clientHttpConnector = new ReactorClientHttpConnector(httpClient);
WebClient webClient = webClientBuilder
.clientConnector(clientHttpConnector)
.baseUrl(baseUrl)
.build();
享受吧!
问题内容: 我有以下代码使用SSL将服务器与客户端连接,现在我想添加客户端身份验证: (我有一个服务器密钥库(JCEKS类型)和一个客户端密钥库(JKS类型),服务器使用了一个信任库(证书),在其中我导入了两个证书,因为我也想使用此信任库进行客户端身份验证) 客户代码: 服务器代码: 在此先感谢您的帮助。 编辑:我在服务器端添加此代码: 但是,如果我删除cacerts中的客户端证书,则连接不会给我
问题内容: 我当前的目标是添加一个新的客户属性(具有类型),该属性应显示为带有预定义选项的选择(已从模型加载,其中的条目可在后端进行编辑)。我正在努力正确使用方法,尤其是指定正确的源选项。另一个问题是新属性未保存到eav_entity_attribute表中 我使用的是Magento CE 1.5.1.0 问题答案: 这是渲染器基本属性的代码: 添加属性的不寻常步骤是,这似乎是客户属性所独有的。没
问题内容: 我正在使用CLI工具来构建具有很酷的上传功能的混合移动应用程序,因此我可以在设备上测试该应用程序而无需通过应用程序商店(ionic- cli)。但是,在我的公司中,像许多其他公司一样,TLS请求使用我自己在钥匙串(OS X)的计算机上拥有的自定义CA证书重新签名。但是,nodejs不会使用钥匙串来获取其信任的CA列表。我无法控制ionic- cli应用程序,因此无法简单地将{ca:}属
是否有任何方法可以将配置添加到库中定义的OpenFeign客户机,使其不影响任何其他客户机?
有谁能提供一个如何在camel transport cxf客户机中正确添加拦截器的示例吗? 谢了。
如何向JMeter脚本添加客户端证书和密钥? 每次我导航到