1

我正在构建一个在#websphere-liberty 配置文件上运行的弹簧启动应用程序。我正在使用 Spring webclient 进行出站连接。除了我无法为 Spring Webclient 使用的 netty httpclient 指定自由 SSL 上下文之外,一切都很好。

非常感谢有关如何为 Netty httpclient 指定预配置的 libery ssl 上下文的任何帮助。

IBM 文档说我应该使用 SSLSocketFactory.getDefault() 来获取自由 SSL 上下文。但我看不出有任何方法可以将它传递给 Netty HttpClient。

参考:[ https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_sec_ssl.html]

这是我尝试过的,但它没有指向#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();
}
4

0 回答 0