Skip to content

Commit af2f0d6

Browse files
committed
Fixing GatewayServerMvcAutoConfiguration to align with correct Boot properties
1 parent 4c4fb69 commit af2f0d6

File tree

5 files changed

+56
-49
lines changed

5 files changed

+56
-49
lines changed

spring-cloud-gateway-server-mvc/pom.xml

+10
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,16 @@
107107
<dependency>
108108
<groupId>org.springframework.cloud</groupId>
109109
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
110+
<exclusions>
111+
<exclusion>
112+
<groupId>io.projectreactor.netty</groupId>
113+
<artifactId>reactor-netty</artifactId>
114+
</exclusion>
115+
<exclusion>
116+
<groupId>org.springframework.boot</groupId>
117+
<artifactId>spring-boot-starter-webflux</artifactId>
118+
</exclusion>
119+
</exclusions>
110120
<scope>test</scope>
111121
</dependency>
112122
<!-- Third party test dependencies -->

spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfiguration.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -216,18 +216,19 @@ static class GatewayHttpClientEnvironmentPostProcessor implements EnvironmentPos
216216
static final boolean REACTOR_NETTY = ClassUtils.isPresent("reactor.netty.http.client.HttpClient", null);
217217
static final boolean JDK = ClassUtils.isPresent("java.net.http.HttpClient", null);
218218
static final boolean HIGHER_PRIORITY = APACHE || JETTY || REACTOR_NETTY;
219+
static final String SPRING_REDIRECTS_PROPERTY = "spring.http.client.redirects";
220+
static final String SPRING_HTTP_FACTORY_PROPERTY = "spring.http.client.factory";
219221

220222
@Override
221223
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
222-
HttpRedirects redirects = environment.getProperty("spring.http.client.settings.redirects",
223-
HttpRedirects.class);
224+
HttpRedirects redirects = environment.getProperty(SPRING_REDIRECTS_PROPERTY, HttpRedirects.class);
224225
if (redirects == null) {
225226
// the user hasn't set anything, change the default
226227
environment.getPropertySources()
227228
.addFirst(new MapPropertySource("gatewayHttpClientProperties",
228-
Map.of("spring.http.client.settings.redirects", HttpRedirects.DONT_FOLLOW)));
229+
Map.of(SPRING_REDIRECTS_PROPERTY, HttpRedirects.DONT_FOLLOW)));
229230
}
230-
Factory factory = environment.getProperty("spring.http.client.settings.factory", Factory.class);
231+
Factory factory = environment.getProperty(SPRING_HTTP_FACTORY_PROPERTY, Factory.class);
231232
boolean setJdkHttpClientProperties = false;
232233

233234
if (factory == null && !HIGHER_PRIORITY) {

spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/GatewayServerMvcAutoConfigurationTests.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,8 @@ void filterEnabledPropertiesWork() {
142142
@Test
143143
void gatewayHttpClientPropertiesWork() {
144144
ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class)
145-
.properties("spring.main.web-application-type=none",
146-
"spring.cloud.gateway.mvc.http-client.connect-timeout=1s",
147-
"spring.cloud.gateway.mvc.http-client.read-timeout=2s",
148-
"spring.cloud.gateway.mvc.http-client.ssl-bundle=mybundle",
149-
"spring.cloud.gateway.mvc.http-client.type=autodetect",
145+
.properties("spring.main.web-application-type=none", "spring.http.client.connect-timeout=1s",
146+
"spring.http.client.read-timeout=2s", "spring.http.client.ssl.bundle=mybundle",
150147
"spring.ssl.bundle.pem.mybundle.keystore.certificate=" + cert,
151148
"spring.ssl.bundle.pem.mybundle.keystore.key=" + key)
152149
.run();
@@ -201,7 +198,7 @@ void settingHttpClientFactoryOldPropertyWorks() {
201198
@Test
202199
void settingHttpClientFactoryWorks() {
203200
ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class)
204-
.properties("spring.main.web-application-type=none", "spring.http.client.settings.factory=simple")
201+
.properties("spring.main.web-application-type=none", "spring.http.client.factory=simple")
205202
.run();
206203
ClientHttpRequestFactoryBuilder<?> builder = context.getBean(ClientHttpRequestFactoryBuilder.class);
207204
assertThat(builder).isInstanceOf(SimpleClientHttpRequestFactoryBuilder.class);

spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/ServerMvcIntegrationTests.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@
142142
import static org.springframework.web.servlet.function.RequestPredicates.path;
143143

144144
@SuppressWarnings("unchecked")
145-
@SpringBootTest(
146-
properties = { "spring.cloud.gateway.mvc.http-client.type=jdk", "spring.cloud.gateway.function.enabled=false" },
145+
@SpringBootTest(properties = { "spring.http.client.factory=jdk", "spring.cloud.gateway.function.enabled=false" },
147146
webEnvironment = WebEnvironment.RANDOM_PORT)
148147
@ContextConfiguration(initializers = HttpbinTestcontainers.class)
149148
@ExtendWith(OutputCaptureExtension.class)

spring-cloud-gateway-server-mvc/src/test/java/org/springframework/cloud/gateway/server/mvc/filter/AfterFilterFunctionsTests.java

+37-37
Original file line numberDiff line numberDiff line change
@@ -60,58 +60,58 @@ class AfterFilterFunctionsTests {
6060
@Test
6161
void doesNotRemoveJsonAttributes() {
6262
restClient.get()
63-
.uri("/anything/does_not/remove_json_attributes")
64-
.exchange()
65-
.expectStatus()
66-
.isOk()
67-
.expectBody(Map.class)
68-
.consumeWith(res -> {
69-
assertThat(res.getResponseBody()).containsEntry("foo", "bar");
70-
assertThat(res.getResponseBody()).containsEntry("baz", "qux");
71-
});
63+
.uri("/anything/does_not/remove_json_attributes")
64+
.exchange()
65+
.expectStatus()
66+
.isOk()
67+
.expectBody(Map.class)
68+
.consumeWith(res -> {
69+
assertThat(res.getResponseBody()).containsEntry("foo", "bar");
70+
assertThat(res.getResponseBody()).containsEntry("baz", "qux");
71+
});
7272
}
7373

7474
@Test
7575
void removeJsonAttributesToAvoidBeingRecursive() {
7676
restClient.get()
77-
.uri("/anything/remove_json_attributes_to_avoid_being_recursive")
78-
.exchange()
79-
.expectStatus()
80-
.isOk()
81-
.expectBody(Map.class)
82-
.consumeWith(res -> {
83-
assertThat(res.getResponseBody()).doesNotContainKey("foo");
84-
assertThat(res.getResponseBody()).containsEntry("baz", "qux");
85-
});
77+
.uri("/anything/remove_json_attributes_to_avoid_being_recursive")
78+
.exchange()
79+
.expectStatus()
80+
.isOk()
81+
.expectBody(Map.class)
82+
.consumeWith(res -> {
83+
assertThat(res.getResponseBody()).doesNotContainKey("foo");
84+
assertThat(res.getResponseBody()).containsEntry("baz", "qux");
85+
});
8686
}
8787

8888
@Test
8989
void removeJsonAttributesRecursively() {
9090
restClient.get()
91-
.uri("/anything/remove_json_attributes_recursively")
92-
.exchange()
93-
.expectStatus()
94-
.isOk()
95-
.expectBody(Map.class)
96-
.consumeWith(res -> {
97-
assertThat(res.getResponseBody()).containsKey("foo");
98-
assertThat((Map<String, String>) res.getResponseBody().get("foo")).containsEntry("bar", "A");
99-
assertThat(res.getResponseBody()).containsEntry("quux", "C");
100-
assertThat(res.getResponseBody()).doesNotContainKey("qux");
101-
});
91+
.uri("/anything/remove_json_attributes_recursively")
92+
.exchange()
93+
.expectStatus()
94+
.isOk()
95+
.expectBody(Map.class)
96+
.consumeWith(res -> {
97+
assertThat(res.getResponseBody()).containsKey("foo");
98+
assertThat((Map<String, String>) res.getResponseBody().get("foo")).containsEntry("bar", "A");
99+
assertThat(res.getResponseBody()).containsEntry("quux", "C");
100+
assertThat(res.getResponseBody()).doesNotContainKey("qux");
101+
});
102102
}
103103

104104
@Test
105105
void raisedErrorWhenRemoveJsonAttributes() {
106106
restClient.get()
107-
.uri("/anything/raised_error_when_remove_json_attributes")
108-
.exchange()
109-
.expectStatus()
110-
.is5xxServerError()
111-
.expectBody(String.class)
112-
.consumeWith(res -> {
113-
assertThat(res.getResponseBody()).isEqualTo("Failed to process JSON of response body.");
114-
});
107+
.uri("/anything/raised_error_when_remove_json_attributes")
108+
.exchange()
109+
.expectStatus()
110+
.is5xxServerError()
111+
.expectBody(String.class)
112+
.consumeWith(res -> {
113+
assertThat(res.getResponseBody()).isEqualTo("Failed to process JSON of response body.");
114+
});
115115
}
116116

117117
@SpringBootConfiguration

0 commit comments

Comments
 (0)