Spring cloud Gateway 指定执行过滤器 (在配置文件中配置所需要过滤器)

 gateway 相关文章

              Spring cloud gateway 处理跨域问题

              Spring cloud gateway 拦截请求404 等HTTP 状态码

              Spring cloud gateway 修改response 截断问题,乱码问题解决

              Spring cloud gateway 详解和配置使用(文章较长)

             Spring cloud gateway 设置https 和http同时支持

                                Spring cloud Gateway  指定执行过滤器 

                                               在配置文件中配置所需要过滤器

 

gateway的配置过滤器分为两种

①:全局过滤器

全局过滤器 不需要在配置文件配置,所有到服务的请求都会进行拦截,


/**
 * @author 荡漾
 * @title: TokenFilter
 * @projectName gateway
 * @description: TODO token校验全局过滤器
 * @date 2019/6/21  12:41
 */
@Configuration
@Slf4j
public class TokenFilter implements GlobalFilter, Ordered {

    @Override
    public int getOrder() {
        return -10000;
    }

 @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
       return chain.filter(exchange);
  }
}

②:指定过滤器

需要继承 AbstractGatewayFilterFactory  

优点,可在配置文件中配置,可以为某个服务指定过滤器,

只需把filter对应的名字写入配置文件即可如图:

这里值得注意的是, 如果你filter的名称后缀是 GatewayFilterFactory 如 TestGatewayFilterFactory 在配置文件中只需要写Test即可 如果不是那就写全称就可以了


@Component
@Slf4j
public class Test  extends AbstractGatewayFilterFactory<Test.NameConfig> {


    public Test() {
        super(NameConfig.class);
        log.info("Loaded GatewayFilterFactory [Authorize]");
    }

    @Override
    public GatewayFilter apply(Test.NameConfig config) {
        return (exchange, chain) -> {
            System.out.println("=  =  =  =  =  = 执行了=  =  =  =  =  =  =  =");
            return chain.filter(exchange);
        };
    }
    public static class NameConfig {

        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

    }
}

参考: stackoverflow 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值