当从邮递员或浏览器命中时,所有 Http 请求在 zuul 预过滤器中命中两次

roh*_*ami 2 spring-boot netflix-zuul

当从邮递员或任何浏览器命中并执行所有操作两次时,所有 Http 请求都会在 zuul 预过滤器中命中两次。我搜索了这个但找不到答案。

我无法在这里添加真正的实现,因此添加虚拟代码。我的预过滤器类是:

public class ApplicationGateway extends ZuulFilter {

    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 1;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() 
    { 
        LOGGER.debug("PRINT");
        // PRINT is printing two times in each request
    }
}  
Run Code Online (Sandbox Code Playgroud)

我的主要课程是:

@SpringBootApplication
@EnableZuulProxy 
public class 
    Application 
extends 
    SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args); 
    }

    @Bean
    public ApplicationGateway preFilter() {
        return new ApplicationGateway();
    }

    @Bean
    public PostFilter postFilter() {
        return new PostFilter();
    }

    @Bean
    public ErrorFilter errorFilter() {
        return new ErrorFilter();
    }

    @Bean
    public RouteFilter routeFilter() {
        return new RouteFilter();
    }

    @Bean
    public ApplicationGateway getAuthenticatedFilter () {
        return new ApplicationGateway();
    } 
}
Run Code Online (Sandbox Code Playgroud)

小智 7

为什么你从 getAuthenticatedFilter 返回 AplicationGateway 类型的 bean,删除它,它应该可以工作

  • 这对我有用,thnx @jayant mishra。抱歉,我没有投票权 (2认同)