Eagerly initialize Netty4ClientHttpRequestFactory

Avoid a null SSLContext.

Closes gh-597
This commit is contained in:
Mark Paluch
2020-12-01 17:45:22 +01:00
parent 740ac04028
commit 494d11d91f
2 changed files with 13 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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 {