gateway还有一个就是实现过滤的作用,配置方法参考官网:Spring Cloud Gateway
我这边整了一个自定义过滤
首先在启动类中加入给过滤让他使用上
@Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("demo2", r -> r.path("/demo2/**") .filters(f ->f.filters(new Changegtefilter())) .uri("lb://DEMO2")) .build(); }
我是新建了一个类 Changegtefilter继承了
GatewayFilter, Ordered判断gid=1才让他通过
@Component() public class Changegtefilter implements GatewayFilter, Ordered{ @Override public Monofilter(ServerWebExchange exchange, GatewayFilterChain chain) { if (exchange.getRequest().getURI().getQuery().equals("gid=1")){ System.out.println(exchange.getRequest().getURI().getQuery()); return chain.filter(exchange); }else { return exchange.getResponse().setComplete(); } } //设置优先级 @Override public int getOrder() { return 0; } @Override public ShortcutType shortcutType() { return null; } @Override public List shortcutFieldOrder() { return null; } @Override public String shortcutFieldPrefix() { return null; } }
进行测试当=2时没有返回什么东西
=1时正常返回
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)