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/

相关文章:

java - JAVA 中的 GAE DataStore 查询过滤器与 Query.FilterOperator.EQUAL 无法与数值进行比较

java - 当 Spring Security 在 Spring Cloud Config Server 上处于 Activity 状态时,Spring Cloud Config Client 未获取配置

hibernate - .persist() 不返回任何错误,但我的持久数据在哪里?

java - 带有包含 URL 的字符串参数的 RequestMapping

c++ - 使用WFP筛选器允许端口和IP对

java - 如何从 Oauth2 SSO 服务器注销

java - "FF4J"(翻转)不适用于 "Hystrix"

java - 构造函数注入(inject): How to reduce amount of parameters?

java - Spring Batch 中日期和双字段的 FlatFileParseException

python - pandas:选择行 - 基于列表 - 具有重复行标签的 DF