@Bean
-@Order(-1)
-public GlobalFilter a() {
- return (exchange, chain) -> {
- log.info("first pre filter");
- return chain.filter(exchange).then(Mono.fromRunnable(() -> {
- log.info("third post filter");
- }));
- };
+public GlobalFilter customFilter() {
+ return CustomGlobalFilter();
}
-@Bean
-@Order(0)
-public GlobalFilter b() {
- return (exchange, chain) -> {
- log.info("second pre filter");
- return chain.filter(exchange).then(Mono.fromRunnable(() -> {
- log.info("second post filter");
- }));
- };
-}
+public class CustomGlobalFilter implements GlobalFilter, Ordered {
-@Bean
-@Order(1)
-public GlobalFilter c() {
- return (exchange, chain) -> {
- log.info("third pre filter");
- return chain.filter(exchange).then(Mono.fromRunnable(() -> {
- log.info("first post filter");
- }));
- };
+ @Override
+ public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+ log.info("custom global filter");
+ return chain.filter(exchange);
+ }
+
+ @Override
+ public int getOrder() {
+ return -1;
+ }
}