support @Order (#2805)

Co-authored-by: xjs1919 <xjs@163.com>
This commit is contained in:
xjs1919
2024-03-09 04:18:47 +08:00
committed by GitHub
parent e40b78c26d
commit c40af3687d

View File

@@ -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());
}