diff --git a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionHandlerMapping.java b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionHandlerMapping.java index 9b9f46c3c..4e43a1bb9 100644 --- a/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionHandlerMapping.java +++ b/spring-cloud-function-web/src/main/java/org/springframework/cloud/function/web/FunctionHandlerMapping.java @@ -81,6 +81,9 @@ public class FunctionHandlerMapping extends RequestMappingHandlerMapping } String path = (String) request .getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); + if (path.startsWith(prefix)) { + path = path.substring(prefix.length()); + } if (path == null) { return handler; } diff --git a/spring-cloud-function-web/src/test/java/org/springframework/cloud/function/web/PrefixTests.java b/spring-cloud-function-web/src/test/java/org/springframework/cloud/function/web/PrefixTests.java index 805729b42..f74ef8898 100644 --- a/spring-cloud-function-web/src/test/java/org/springframework/cloud/function/web/PrefixTests.java +++ b/spring-cloud-function-web/src/test/java/org/springframework/cloud/function/web/PrefixTests.java @@ -54,7 +54,7 @@ public class PrefixTests { @Test public void words() throws Exception { ResponseEntity result = rest - .exchange(RequestEntity.get(new URI("/words")).build(), String.class); + .exchange(RequestEntity.get(new URI("/functions/words")).build(), String.class); assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK); assertThat(result.getBody()).isEqualTo("foobar"); }