From 927134fcf88a7072d452f3a41938b65e9abbf5b2 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 1 Dec 2020 17:45:22 +0100 Subject: [PATCH] Eagerly initialize Netty4ClientHttpRequestFactory Avoid a null SSLContext. Closes gh-597 --- .../vault/client/ClientHttpRequestFactoryFactory.java | 3 +++ ...ientHttpRequestFactoryFactoryIntegrationTests.java | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java index 2d9b6ca9..c6eb474f 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java @@ -387,6 +387,9 @@ public class ClientHttpRequestFactoryFactory { requestFactory.setConnectTimeout(Math.toIntExact(options.getConnectionTimeout().toMillis())); requestFactory.setReadTimeout(Math.toIntExact(options.getReadTimeout().toMillis())); + // eagerly initialize to ensure SSL context + requestFactory.afterPropertiesSet(); + return requestFactory; } diff --git a/spring-vault-core/src/test/java/org/springframework/vault/client/ClientHttpRequestFactoryFactoryIntegrationTests.java b/spring-vault-core/src/test/java/org/springframework/vault/client/ClientHttpRequestFactoryFactoryIntegrationTests.java index 3f07a2a1..d8e86298 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/client/ClientHttpRequestFactoryFactoryIntegrationTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/client/ClientHttpRequestFactoryFactoryIntegrationTests.java @@ -27,10 +27,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.Netty4ClientHttpRequestFactory; -import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.vault.client.ClientHttpRequestFactoryFactory.HttpComponents; import org.springframework.vault.client.ClientHttpRequestFactoryFactory.Netty; -import org.springframework.vault.client.ClientHttpRequestFactoryFactory.OkHttp3; import org.springframework.vault.support.ClientOptions; import org.springframework.vault.support.SslConfiguration; import org.springframework.vault.util.Settings; @@ -81,6 +80,14 @@ class ClientHttpRequestFactoryFactoryIntegrationTests { ((DisposableBean) factory).destroy(); } + @Test + void nettyClientWithoutSslConfigShouldWork() throws Exception { + + ClientHttpRequestFactory factory = Netty.usingNetty(new ClientOptions(), SslConfiguration.unconfigured()); + + assertThat(ReflectionTestUtils.getField(factory, "sslContext")).isNotNull(); + } + @Test void nettyClientShouldWork() throws Exception {