diff --git a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfiguration.java b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfiguration.java index dfdbd1bc..d515b906 100644 --- a/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfiguration.java +++ b/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfiguration.java @@ -24,12 +24,12 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory; import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration; -import org.springframework.boot.autoconfigure.http.client.HttpClientProperties.Factory; import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; import org.springframework.boot.env.EnvironmentPostProcessor; -import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects; +import org.springframework.boot.http.client.HttpRedirects; import org.springframework.boot.web.client.RestClientCustomizer; import org.springframework.cloud.gateway.server.mvc.common.ArgumentSupplierBeanPostProcessor; import org.springframework.cloud.gateway.server.mvc.config.GatewayMvcAotRuntimeHintsRegistrar; @@ -219,14 +219,15 @@ public class GatewayServerMvcAutoConfiguration { @Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { - Redirects redirects = environment.getProperty("spring.http.client.redirects", Redirects.class); + HttpRedirects redirects = environment.getProperty("spring.http.client.settings.redirects", + HttpRedirects.class); if (redirects == null) { // the user hasn't set anything, change the default environment.getPropertySources() .addFirst(new MapPropertySource("gatewayHttpClientProperties", - Map.of("spring.http.client.redirects", Redirects.DONT_FOLLOW))); + Map.of("spring.http.client.settings.redirects", HttpRedirects.DONT_FOLLOW))); } - Factory factory = environment.getProperty("spring.http.client.factory", Factory.class); + Factory factory = environment.getProperty("spring.http.client.settings.factory", Factory.class); boolean setJdkHttpClientProperties = false; if (factory == null && !HIGHER_PRIORITY) { diff --git a/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfigurationTests.java b/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfigurationTests.java index afaee7e4..68adca66 100644 --- a/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfigurationTests.java +++ b/spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfigurationTests.java @@ -192,7 +192,7 @@ public class GatewayServerMvcAutoConfigurationTests { } @Test - void settingHttpClientFactoryWorks() { + void settingHttpClientFactoryOldPropertyWorks() { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class) .properties("spring.main.web-application-type=none", "spring.http.client.factory=simple") .run(); @@ -200,6 +200,15 @@ public class GatewayServerMvcAutoConfigurationTests { assertThat(builder).isInstanceOf(SimpleClientHttpRequestFactoryBuilder.class); } + @Test + void settingHttpClientFactoryWorks() { + ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class) + .properties("spring.main.web-application-type=none", "spring.http.client.settings.factory=simple") + .run(); + ClientHttpRequestFactoryBuilder builder = context.getBean(ClientHttpRequestFactoryBuilder.class); + assertThat(builder).isInstanceOf(SimpleClientHttpRequestFactoryBuilder.class); + } + @Test void loadBalancerFunctionHandlerAdded() { new ApplicationContextRunner()