java - 禁用webclient ssl验证springboot 2.0.4
问题描述
在 springboot 2.1 上,您可以使用下面的代码段禁用 webclient ssl 验证,但是如何在 springboot 2.0 上执行此操作?ReactorClientHttpConnector 没有这个构造函数来接受 HttpClient,而是它有下面的构造函数
public ReactorClientHttpConnector(Consumer<? super HttpClientOptions.Builder> clientOptions) {
this.httpClient = HttpClient.create(clientOptions);
}
下面的代码片段适用于 2.1 但不适用于 2.0
SslContext context = SslContextBuilder.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
HttpClient httpClient = HttpClient.create().secure(t -> t.sslContext(context));
WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
解决方案
api 在 2.0 和 2.1 之间发展了一点。在下面找到适用于 2.0.4 的示例:
package com.example.webclienttest;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder;
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
import javax.net.ssl.SSLException;
import org.junit.Test;
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.web.reactive.function.client.WebClient;
public class WebClientTest {
@Test
public void test() throws SSLException {
SslContext context = SslContextBuilder.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE).build();
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(builder -> builder.sslContext(context)))
.build();
String stringMono = webClient.get().uri("https://expired.badssl.com/").retrieve()
.bodyToMono(String.class).block();
System.out.println(stringMono);
}
}
推荐阅读
- python - Django: Querying a stacked inline object | ValueError at /profile Cannot query "Anthony_Jamez12": Must be "Profile" instance
- reactjs - 测试使用 Testing React 库的 Material UI 组件,并且回调函数在 onChange 道具中没有被识别
- sql - 在 SQLite3 中,有没有办法在行限制后继续查询?
- kubernetes - k3s:访问指标服务器所需的权限?
- javascript - 在 if/else 语句中调用异步函数 - Javascript
- c++ - thread_local 的内存使用量如何随线程数扩展?
- python - 增加对象并追加到列表 Python
- matplotlib - 如何使用 ipywidgets 和 matplotlib 获得任何类型的交互式绘图
- r - 如何在数据框列表上使用 group_by 函数
- reactjs - Reactjs SEO 友好吗?与谷歌机器人