Fix invalid request handling for WebFlux actuator endpoints
Fixes gh-39236
This commit is contained in:
@@ -226,6 +226,31 @@ public abstract class AbstractWebEndpointIntegrationTests<T extends Configurable
|
||||
.isEqualTo("1 2"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void readOperationWithQueryParametersMissing() {
|
||||
load(QueryEndpointConfiguration.class,
|
||||
(client) -> client.get().uri("/query").exchange().expectStatus().isBadRequest());
|
||||
}
|
||||
|
||||
@Test
|
||||
void reactiveReadOperationWithSingleQueryParameters() {
|
||||
load(ReactiveQueryEndpointConfiguration.class,
|
||||
(client) -> client.get()
|
||||
.uri("/query?param=test")
|
||||
.exchange()
|
||||
.expectStatus()
|
||||
.isOk()
|
||||
.expectBody()
|
||||
.jsonPath("query")
|
||||
.isEqualTo("test"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void reactiveReadOperationWithQueryParametersMissing() {
|
||||
load(ReactiveQueryEndpointConfiguration.class,
|
||||
(client) -> client.get().uri("/query").exchange().expectStatus().isBadRequest());
|
||||
}
|
||||
|
||||
@Test
|
||||
void readOperationWithSingleQueryParametersAndMultipleValues() {
|
||||
load(QueryEndpointConfiguration.class,
|
||||
@@ -732,6 +757,17 @@ public abstract class AbstractWebEndpointIntegrationTests<T extends Configurable
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@Import(BaseConfiguration.class)
|
||||
static class ReactiveQueryEndpointConfiguration {
|
||||
|
||||
@Bean
|
||||
ReactiveQueryEndpoint reactiveQueryEndpoint() {
|
||||
return new ReactiveQueryEndpoint();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@Import(BaseConfiguration.class)
|
||||
static class VoidWriteResponseEndpointConfiguration {
|
||||
@@ -974,6 +1010,16 @@ public abstract class AbstractWebEndpointIntegrationTests<T extends Configurable
|
||||
|
||||
}
|
||||
|
||||
@Endpoint(id = "query")
|
||||
static class ReactiveQueryEndpoint {
|
||||
|
||||
@ReadOperation
|
||||
Mono<Map<String, String>> query(String param) {
|
||||
return Mono.just(Collections.singletonMap("query", param));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Endpoint(id = "voidwrite")
|
||||
static class VoidWriteResponseEndpoint {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user