From be9291a36533ace14607a5c4d6eadf4730d7e52e Mon Sep 17 00:00:00 2001 From: Madhura Bhave Date: Thu, 28 Dec 2017 13:13:23 -0800 Subject: [PATCH] Match trailing slash in actuator endpoints Fixes gh-11024 --- .../web/servlet/AbstractWebMvcEndpointHandlerMapping.java | 2 +- .../endpoint/web/AbstractWebEndpointIntegrationTests.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/AbstractWebMvcEndpointHandlerMapping.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/AbstractWebMvcEndpointHandlerMapping.java index c4e32069ea..ab3cb30d62 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/AbstractWebMvcEndpointHandlerMapping.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/web/servlet/AbstractWebMvcEndpointHandlerMapping.java @@ -149,7 +149,7 @@ public abstract class AbstractWebMvcEndpointHandlerMapping private PatternsRequestCondition patternsRequestConditionForPattern(String path) { String[] patterns = new String[] { this.endpointMapping.createSubPath(path) }; - return new PatternsRequestCondition(patterns, null, null, false, false); + return new PatternsRequestCondition(patterns, null, null, false, true); } private String[] toStringArray(Collection collection) { diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/AbstractWebEndpointIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/AbstractWebEndpointIntegrationTests.java index 9c84621465..d54603a4d3 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/AbstractWebEndpointIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/AbstractWebEndpointIntegrationTests.java @@ -122,6 +122,13 @@ public abstract class AbstractWebEndpointIntegrationTests client.get().uri("").exchange().expectStatus().isNotFound()); } + @Test + public void operationWithTrailingSlashShouldMatch() { + load(TestEndpointConfiguration.class, + (client) -> client.get().uri("/test/").exchange().expectStatus().isOk() + .expectBody().jsonPath("All").isEqualTo(true)); + } + @Test public void readOperationWithSingleQueryParameters() { load(QueryEndpointConfiguration.class,