首页 > 解决方案 > 如何在一个网关应用中创建多个 Zuul 过滤器

问题描述

如何在 zuul 网关应用程序(spring boot)中创建多个(前/后)过滤器。

例子:

/endpoint1 - should call (Filter 1)
/endpoint2 - should be served by (Filter2)

目前我知道每个请求都到达网关,将由一个过滤器(pre,route,post)处理

标签: netflix-zuulspring-cloud-netflix

解决方案


您可以为一个端点或多个端点使用多个过滤器。

如果您想对某些端点应用过滤器而不对其他端点应用过滤器,您可以使用shouldFilter()此过滤器的方法(例如预过滤器)来定义用例。就像是 :

@Override
public boolean shouldFilter() {
    String endpointToFilter = RequestContext.getCurrentContext().getRequest().getRequestURI();
    endpointToFilter = endpointToFilter.substring(0, endpointToFilter.indexOf("/", 1));
    boolean shouldFilter = "endpoint1".equals(endpointToFilter);
    return shouldFilter;
}

推荐阅读