Spring cloud - Zuul - 自定义过滤器

时间:2015-12-09 13:13:40

标签: spring filter spring-cloud netflix netflix-zuul

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

1 个答案:

答案 0 :(得分:3)

要创建自定义过滤器,您可以使用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