gateway的config目录下创建两个过滤器:

实现接口GlobalFilter 得到filter类 用于拦截 

实现接口Ordered 得到  getOrder()方法  用于实现多个过滤器的执行顺序 (从小到大的顺序)

@Component

public class Test1Filter implements GlobalFilter , Ordered {

private static final Logger LOG = LoggerFactory.getLogger(Test1Filter.class);

@Override

// Mono 是 事件编程的一个类 chain 是过滤器的链条

public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {

LOG.info("Test1Filter");

// 成功返回过滤器

return chain.filter(exchange);

// 拦截过滤器 让过滤器失败 请求结束

// return exchange.getResponse().setComplete();

}

@Override

public int getOrder() {

return 0;

}

}

@Component

public class Test2Filter implements GlobalFilter , Ordered {

private static final Logger LOG = LoggerFactory.getLogger(Test2Filter.class);

@Override

// Mono 是 事件编程的一个类 chain 是过滤器的链条

public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) {

LOG.info("Test2Filter");

// 成功返回过滤器

return chain.filter(exchange);

// 拦截过滤器 让过滤器失败 请求结束

// return exchange.getResponse().setComplete();

}

@Override

public int getOrder() {

return 1;

}

}

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: