From 674e2a886efe46c075478f7462957b1cd6ee4829 Mon Sep 17 00:00:00 2001 From: wangYX657211334 Date: Sat, 9 Mar 2024 04:02:35 +0800 Subject: [PATCH] Fixes gh-2933 GatewayFilter support @Order annotation (#2934) --- .../cloud/gateway/handler/FilteringWebHandler.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/FilteringWebHandler.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/FilteringWebHandler.java index 8be3308b..1e3ac57c 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/FilteringWebHandler.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/FilteringWebHandler.java @@ -30,6 +30,7 @@ import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.cloud.gateway.filter.OrderedGatewayFilter; import org.springframework.cloud.gateway.filter.factory.GatewayFilterFactory; import org.springframework.cloud.gateway.route.Route; +import org.springframework.core.DecoratingProxy; import org.springframework.core.Ordered; import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.web.server.ServerWebExchange; @@ -43,6 +44,7 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.G * * @author Rossen Stoyanchev * @author Spencer Gibb + * @author Yuxin Wang * @since 0.1 */ public class FilteringWebHandler implements WebHandler { @@ -124,7 +126,7 @@ public class FilteringWebHandler implements WebHandler { } - private static class GatewayFilterAdapter implements GatewayFilter { + private static class GatewayFilterAdapter implements GatewayFilter, DecoratingProxy { private final GlobalFilter delegate; @@ -145,6 +147,11 @@ public class FilteringWebHandler implements WebHandler { return sb.toString(); } + @Override + public Class getDecoratedClass() { + return delegate.getClass(); + } + } }