SpringCloud-ZuulFilter配置

57 阅读1分钟

一、自定义Filter

继承ZuulFilter,重写四个方法

@Component
public class AuthFilter extends ZuulFilter {

    //定义过滤器类型 
    @Override
    public String filterType() {
        return FilterConstants.PRE_TYPE;
    }
    //拦截器顺序,值越小,越在前
    @Override
    public int filterOrder() {
        return -1;
    }
    //该过滤器是否生效
    @Override
    public boolean shouldFilter() {
        return true;
    }
    //拦截后的具体业务逻辑, 返回NULL,继续向后执行
    @Override
    public Object run() {
        return null;
    }
}

二、Filter 类型

filter 有四种类型:

  • pre :在请求被路由前执行,可用作鉴权、记录日志、限流
  • route :在将请求路由到微服务时执行,用于构建发送给微服务的请求
  • post :在调用微服务后执行,将响应返回给客户端
  • error :在其他阶段发生错误时执行
四种类型的执行顺序

image.png