Uses new spring.http.client.settings namespace

Fixes gh-3781
This commit is contained in:
spencergibb
2025-04-28 11:46:14 -04:00
parent c990c926ba
commit 2cae387df6
2 changed files with 16 additions and 6 deletions

View File

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

View File

@@ -190,7 +190,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();
@@ -198,6 +198,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);
}
@SpringBootConfiguration
@EnableAutoConfiguration
static class TestConfig {