2

Spring cloud Netflix 文档没有关于现有 Zuul 过滤器的任何信息。是否有任何其他资源可以解释现有的 zuul 过滤器、创建新过滤器的指南?另外我需要知道我应该在我的自定义过滤器中设置什么优先级,以及我是否需要像在 servlet 过滤器中那样使用 ResponseWappers?

4

1 回答 1

4

要创建自定义过滤器,您可以使用 ZuulFilter 扩展该类,并且您必须添加 @Bean 配置。

public class MyFilter extends ZuulFilter {
    @Override
  public String filterType() {
    return "pre";
  }

  @Override
  public int filterOrder() {
    return 1;
  }

  @Override
  public boolean shouldFilter() {
    return true;
  }

  @Override
  public Object run() {
    return null;
  }
    }

把这个定义写在用springbootapplication注解的类上

@Bean
  public MyFilter myFilter() {
    return new MyFilter();
  }

过滤器有 4 种类型 PRE、ROUTING、POST、ERROR 我认为名称说明了您可以在上面的 FilterType() 方法中定义过滤器类型的目的,也可以选择优先级。

您可以使用 RequestContext 来获取请求和响应。

这些文档可能有助于获取更多详细信息:-

  1. https://spring.io/guides/gs/routing-and-filtering/
  2. https://github.com/Netflix/zuul/wiki/How-it-Works
于 2016-06-24T17:27:42.620 回答