【发布时间】:2017-01-16 14:56:22
【问题描述】:
在我的 Spring Boot 应用程序中,我有以下过滤器注册表:
@Bean
public FilterRegistry filterRegistry(Service1 service1, Service2 service2,
EvictionService evictionService) throws GeneralSecurityException {
FilterRegistry r = FilterRegistry.instance();
r.put("filter1", new MetadataFilter(Service2,evictionService));
r.put("filter2", new RoutesFilter(service1,evictionService, publicKey));
return r;
}
在第一个过滤器中,我需要检查一个条件,如果此条件为真,我想跳过过滤器注册表中的所有过滤器。我现在所拥有的是我在每个过滤器的开头进行检查,如下所示:
public class Filter1 extends ZuulFilter {
public boolean shouldFilter() {
if(condition){
return false;
}
return true
}
}
public class Filter2 extends ZuulFilter {
public boolean shouldFilter() {
if(condition){
return false;
}
return true
}
}
但我真正想要的是创建一个包含条件的新过滤器,在开始时运行条件过滤器,如果条件为真,则不要继续在过滤器注册表执行中。
有什么想法吗?
【问题讨论】:
标签: spring spring-boot netflix-zuul