From a00ee15e16ca24ab4d56c6f876f9ab50b55ae217 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Sat, 13 Oct 2018 23:10:37 -0700 Subject: [PATCH] Use lowercase default endpoint paths Update `MappingWebEndpointPathMapper` to use the lowercase version of the endpoint ID when no explicit path mapping has been set. An endpoint with the ID 'myEndpoint' will now be mapped to the path 'myendpoint'. See gh-14773 --- .../web/MappingWebEndpointPathMapper.java | 7 +++++-- .../web/MappingWebEndpointPathMapperTests.java | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapper.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapper.java index 64bdbf39fd6..9bed06f81b6 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapper.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapper.java @@ -16,6 +16,7 @@ package org.springframework.boot.actuate.autoconfigure.endpoint.web; +import java.util.HashMap; import java.util.Map; import org.springframework.boot.actuate.endpoint.EndpointId; @@ -29,10 +30,12 @@ import org.springframework.boot.actuate.endpoint.web.PathMapper; */ class MappingWebEndpointPathMapper implements PathMapper { - private final Map pathMapping; + private final Map pathMapping; MappingWebEndpointPathMapper(Map pathMapping) { - this.pathMapping = pathMapping; + this.pathMapping = new HashMap<>(); + pathMapping.forEach((id, path) -> this.pathMapping + .put(EndpointId.fromPropertyValue(id), path)); } @Override diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapperTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapperTests.java index a16acdddbda..d9d1d0aa924 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapperTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/MappingWebEndpointPathMapperTests.java @@ -45,4 +45,19 @@ public class MappingWebEndpointPathMapperTests { assertThat(mapper.getRootPath(EndpointId.of("test"))).isEqualTo("custom"); } + @Test + public void mixedCaseDefaultConfiguration() { + MappingWebEndpointPathMapper mapper = new MappingWebEndpointPathMapper( + Collections.emptyMap()); + assertThat(mapper.getRootPath(EndpointId.of("testEndpoint"))) + .isEqualTo("testendpoint"); + } + + @Test + public void mixedCaseUserConfiguration() { + MappingWebEndpointPathMapper mapper = new MappingWebEndpointPathMapper( + Collections.singletonMap("test-endpoint", "custom")); + assertThat(mapper.getRootPath(EndpointId.of("testEndpoint"))).isEqualTo("custom"); + } + }