From 494d11d91fef6852bb24c9f6b4983abaaf706041 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 +++ ...lientHttpRequestFactoryFactoryIntegrationTests.java | 10 ++++++++++ 2 files changed, 13 insertions(+) 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 361381bf..83c8c067 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 @@ -343,6 +343,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 f885bf25..efa3fe65 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 @@ -25,10 +25,12 @@ 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; import org.springframework.web.client.HttpStatusCodeException; import org.springframework.web.client.RestTemplate; @@ -74,6 +76,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 okHttp3ClientShouldWork() throws Exception {