Spring cloud - Zuul - 自定义过滤器

标签 spring filter spring-cloud netflix netflix-zuul

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

最佳答案

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

关于Spring cloud - Zuul - 自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34179743/

相关文章:

shell - 如何在 Hbase shell 中组合过滤器?

spring - 如何在grails utils包中获取springSecurityService

java - 未找到速度模板

PowerShell:识别磁盘使用率是否超过 80%

python - Pandas :按多列中的值过滤

spring-boot - Spring @RefreshScope 不适用于 @Component

java - Eureka认证方法及UI

spring - 如何要求 Spring Cloud Config 服务器从特定分支 checkout 配置?

Tomcat 服务器上的 java.lang.IllegalArgumentException 错误 -SpringMVC

java - Spring 无法执行多部分项目的清理