我试图找到 WebClient 使用的例子。
我的目标是使用 Spring 5 WebClient 使用 https 和自签名证书查询 REST 服务
有什么例子吗?
原文由 Seb 发布,翻译遵循 CC BY-SA 4.0 许可协议
我试图找到 WebClient 使用的例子。
我的目标是使用 Spring 5 WebClient 使用 https 和自签名证书查询 REST 服务
有什么例子吗?
原文由 Seb 发布,翻译遵循 CC BY-SA 4.0 许可协议
看起来像 Spring 5.1.1(Spring boot 2.1.0)从 HttpClientOptions
中删除了 --- ReactorClientHttpConnector
,因此在创建 ReactorClientHttpConnector
的实例时无法配置选项
现在有效的一种选择是:
val sslContext = SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build()
val httpClient = HttpClient.create().secure { t -> t.sslContext(sslContext) }
val webClient = WebClient.builder().clientConnector(ReactorClientHttpConnector(httpClient)).build()
基本上在创建 HttpClient 时,我们正在配置 不安全 的 sslContext ,然后将此 httpClient 传递给 ReactorClientHttpConnector
全局使用。
另一个选项 是使用不安全的 sslContext 配置 TcpClient
并使用它来创建 HttpClient
实例,如下图所示:
val sslContext = SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build()
val tcpClient = TcpClient.create().secure { sslProviderBuilder -> sslProviderBuilder.sslContext(sslContext) }
val httpClient = HttpClient.from(tcpClient)
val webClient = WebClient.builder().clientConnector(ReactorClientHttpConnector(httpClient)).build()
了解更多信息:
更新:相同代码的 Java 版本
SslContext context = SslContextBuilder.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
HttpClient httpClient = HttpClient.create().secure(t -> t.sslContext(context));
WebClient wc = WebClient
.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient)).build();
原文由 Munish Chandel 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.2k 阅读
1 回答2.1k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
3 回答1.5k 阅读
1.9k 阅读
2 回答1.2k 阅读
1 回答935 阅读
请参阅使用 不安全的 TrustManagerFactory 的示例,它信任所有 X.509 证书(包括自签名)而无需任何验证。文档中的重要说明: