From e3a44c3cf30d3719d95c0225e7c72e6ca731ae3d 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 1d3f9d9ed..53b134ca9 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 @@ -187,6 +187,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); }