热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spring5WebClient使用SSL

Spring5WebC

切勿在生产中使用此TrustManagerFactory。它仅用于测试目的,因此非常不安全。

@Bean
public WebClient createWebClient() throws SSLException {
SslContext sslCOntext= SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
ClientHttpConnector httpCOnnector= HttpClient.create().secure { t -> t.sslContext(sslContext) }
return WebClient.builder().clientConnector(httpConnector).build();
}



像Spring 5.1.1长相(spring启动2.1.0)移除HttpClientOptionsReactorClientHttpConnector,所以你不能配置选项在创建实例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全局使用。

另一个选项是TcpClient使用不安全的sslContext 进行配置并使用它来创建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()





推荐阅读
author-avatar
G眯眼猫2850927647Ona
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有