From 2d473e7642aa1fa05b4e9d74edd0751e56c924c2 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 25 Apr 2023 13:21:25 +0200 Subject: [PATCH] Ensure RoutingFuunction can't route to itself --- .../cloud/function/context/config/RoutingFunction.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/RoutingFunction.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/RoutingFunction.java index f26467716..8a5b66569 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/RoutingFunction.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/RoutingFunction.java @@ -193,6 +193,12 @@ public class RoutingFunction implements Function { } } + if (function.getTarget().equals(this)) { + throw new IllegalStateException("Failed to establish route, and routing to itself is not allowed as it creates a loop. Please provide: " + + "'spring.cloud.function.definition' as Message header or as application property or " + + "'spring.cloud.function.routing-expression' as application property."); + } + return function.apply(input); }