From 39ccd274f7fd9d0420969854b2c4308126109402 Mon Sep 17 00:00:00 2001 From: Luciano Canales <64669280+ljcanales@users.noreply.github.com> Date: Mon, 3 Mar 2025 16:19:05 -0300 Subject: [PATCH] Configure SimpleClientHttpRequestFactory with timeouts. Closes gh-907 Original pull request: gh-908 Signed-off-by: Luciano Canales <64669280+ljcanales@users.noreply.github.com> --- .../ClientHttpRequestFactoryFactory.java | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) 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 27d4f73a..06963749 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 @@ -82,6 +82,7 @@ import org.springframework.vault.support.SslConfiguration.KeyStoreConfiguration; * @author Mark Paluch * @author Ryan Gow * @author Spencer Gibb + * @author Luciano Canales * @since 2.2 */ public class ClientHttpRequestFactoryFactory { @@ -128,7 +129,7 @@ public class ClientHttpRequestFactoryFactory { + "must be applied outside the Vault Client to use the JDK HTTP client"); } - return new SimpleClientHttpRequestFactory(); + return SimpleClient.usingSimpleClientHttpRequest(options); } static SSLContext getSSLContext(SslConfiguration sslConfiguration) throws GeneralSecurityException, IOException { @@ -417,6 +418,32 @@ public class ClientHttpRequestFactoryFactory { } + /** + * Utilities to create a {@link ClientHttpRequestFactory} for the + * {@link SimpleClientHttpRequestFactory}. + * + * @author Luciano Canales + */ + public static class SimpleClient { + + /** + * Create a {@link ClientHttpRequestFactory} using + * {@link SimpleClientHttpRequestFactory}. + * @param options must not be {@literal null} + * @return a new and configured {@link SimpleClientHttpRequestFactory} instance. + */ + public static SimpleClientHttpRequestFactory usingSimpleClientHttpRequest(ClientOptions options) { + + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + + factory.setConnectTimeout((int) options.getConnectionTimeout().toMillis()); + factory.setReadTimeout((int) options.getReadTimeout().toMillis()); + + return factory; + } + + } + static class KeySelectingKeyManagerFactory extends KeyManagerFactory { KeySelectingKeyManagerFactory(KeyManagerFactory factory, KeyConfiguration keyConfiguration) {