Skip to content

Commit 494d11d

Browse files
committed
Eagerly initialize Netty4ClientHttpRequestFactory
Avoid a null SSLContext. Closes gh-597
1 parent 740ac04 commit 494d11d

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

spring-vault-core/src/main/java/org/springframework/vault/client/ClientHttpRequestFactoryFactory.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,9 @@ static ClientHttpRequestFactory usingNetty(ClientOptions options, SslConfigurati
343343
requestFactory.setConnectTimeout(Math.toIntExact(options.getConnectionTimeout().toMillis()));
344344
requestFactory.setReadTimeout(Math.toIntExact(options.getReadTimeout().toMillis()));
345345

346+
// eagerly initialize to ensure SSL context
347+
requestFactory.afterPropertiesSet();
348+
346349
return requestFactory;
347350
}
348351

spring-vault-core/src/test/java/org/springframework/vault/client/ClientHttpRequestFactoryFactoryIntegrationTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
2626
import org.springframework.http.client.Netty4ClientHttpRequestFactory;
2727
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
28+
import org.springframework.test.util.ReflectionTestUtils;
2829
import org.springframework.vault.client.ClientHttpRequestFactoryFactory.HttpComponents;
2930
import org.springframework.vault.client.ClientHttpRequestFactoryFactory.Netty;
3031
import org.springframework.vault.client.ClientHttpRequestFactoryFactory.OkHttp3;
3132
import org.springframework.vault.support.ClientOptions;
33+
import org.springframework.vault.support.SslConfiguration;
3234
import org.springframework.vault.util.Settings;
3335
import org.springframework.web.client.HttpStatusCodeException;
3436
import org.springframework.web.client.RestTemplate;
@@ -74,6 +76,14 @@ void nettyClientShouldWork() throws Exception {
7476
((DisposableBean) factory).destroy();
7577
}
7678

79+
@Test
80+
void nettyClientWithoutSslConfigShouldWork() throws Exception {
81+
82+
ClientHttpRequestFactory factory = Netty.usingNetty(new ClientOptions(), SslConfiguration.unconfigured());
83+
84+
assertThat(ReflectionTestUtils.getField(factory, "sslContext")).isNotNull();
85+
}
86+
7787
@Test
7888
void okHttp3ClientShouldWork() throws Exception {
7989

0 commit comments

Comments
 (0)