From 103fa307e57de1b6660a8a004e9d8f18283b18c9 Mon Sep 17 00:00:00 2001 From: Eric Zhao Date: Mon, 22 Jul 2019 22:37:29 +0800 Subject: [PATCH] Add Ordered support for Spring Cloud Gateway adapter Signed-off-by: Eric Zhao --- .../gateway/sc/SentinelGatewayFilter.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/sentinel-adapter/sentinel-spring-cloud-gateway-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/gateway/sc/SentinelGatewayFilter.java b/sentinel-adapter/sentinel-spring-cloud-gateway-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/gateway/sc/SentinelGatewayFilter.java index dbe9c130..aeca8e98 100644 --- a/sentinel-adapter/sentinel-spring-cloud-gateway-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/gateway/sc/SentinelGatewayFilter.java +++ b/sentinel-adapter/sentinel-spring-cloud-gateway-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/gateway/sc/SentinelGatewayFilter.java @@ -34,6 +34,7 @@ import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.cloud.gateway.route.Route; import org.springframework.cloud.gateway.support.ServerWebExchangeUtils; +import org.springframework.core.Ordered; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; @@ -41,7 +42,17 @@ import reactor.core.publisher.Mono; * @author Eric Zhao * @since 1.6.0 */ -public class SentinelGatewayFilter implements GatewayFilter, GlobalFilter { +public class SentinelGatewayFilter implements GatewayFilter, GlobalFilter, Ordered { + + private final int order; + + public SentinelGatewayFilter() { + this(Ordered.HIGHEST_PRECEDENCE); + } + + public SentinelGatewayFilter(int order) { + this.order = order; + } private final GatewayParamParser paramParser = new GatewayParamParser<>( new ServerWebExchangeItemParser()); @@ -87,4 +98,9 @@ public class SentinelGatewayFilter implements GatewayFilter, GlobalFilter { .map(WebExchangeApiMatcher::getApiName) .collect(Collectors.toSet()); } + + @Override + public int getOrder() { + return order; + } }