From c40af3687d573494710592fa8a14e3628cea7f15 Mon Sep 17 00:00:00 2001 From: xjs1919 <605162215@qq.com> Date: Sat, 9 Mar 2024 04:18:47 +0800 Subject: [PATCH] support @Order (#2805) Co-authored-by: xjs1919 --- .../cloud/gateway/handler/FilteringWebHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 1e3ac57c..395ee027 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 @@ -33,6 +33,8 @@ 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.core.annotation.AnnotationUtils; +import org.springframework.core.annotation.Order; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebHandler; @@ -64,6 +66,12 @@ public class FilteringWebHandler implements WebHandler { int order = ((Ordered) filter).getOrder(); return new OrderedGatewayFilter(gatewayFilter, order); } + else { + Order order = AnnotationUtils.findAnnotation(filter.getClass(), Order.class); + if (order != null) { + return new OrderedGatewayFilter(gatewayFilter, order.value()); + } + } return gatewayFilter; }).collect(Collectors.toList()); }