我正在构建一个在#websphere-liberty 配置文件上运行的弹簧启动应用程序。我正在使用 Spring webclient 进行出站连接。除了我无法为 Spring Webclient 使用的 netty httpclient 指定自由 SSL 上下文之外,一切都很好。
非常感谢有关如何为 Netty httpclient 指定预配置的 libery ssl 上下文的任何帮助。
IBM 文档说我应该使用 SSLSocketFactory.getDefault() 来获取自由 SSL 上下文。但我看不出有任何方法可以将它传递给 Netty HttpClient。
这是我尝试过的,但它没有指向#Websphere-liberty 配置的 SSL 上下文。相反,它似乎创造了一个新的。因此,netty HttpClient 无法使用信任/密钥库,并且我收到一条错误消息,指出对等方不受信任。
@Bean
public WebClient createWebClient() throws SSLException {
JdkSslContext jdkSslContext = new
JdkSslContext(SSLContext.getInstance("SSL"),true,
null, IdentityCipherSuiteFilter.INSTANCE,null,ClientAuth.NONE,
null,false);
ClientHttpConnector httpConnector = HttpClient.create().secure { t -> t.sslContext(jdkSslContext) }
return WebClient.builder().clientConnector(httpConnector).build();
}