GateWay过滤器
路由过滤器可用于修改进入的HTTP请求和返回的HTTP响应,只能指定路由进行使用,由GatewayFilter的工厂类来产生,Gateway官方提供了很多的路由过滤器,也可以实现自己的自定义过滤器
自定义过滤器
实现自定义的全局过滤器,需要实现GlobalFilter和Ordered接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| @Component public class MyGlobalFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { System.out.println("过滤器进入"); String token = exchange.getRequest().getQueryParams().getFirst("token"); if(StringUtils.isBlank(token)){ System.out.println("不包含token"); exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED); return exchange.getResponse().setComplete(); }
return chain.filter(exchange); }
@Override public int getOrder() { return 0; } }
|