相关疑难解决方法(0)

注册为Spring bean时,过滤调用两次

我想@Autowire用一个Filter.所以我在SecurityConfig下面定义我的过滤器:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
        http.addFilterBefore(getA(), BasicAuthenticationFilter.class);
        http.csrf().disable();
    }

    @Bean
    public A getA(){
        return new A();
    }
Run Code Online (Sandbox Code Playgroud)

这个过滤器A扩展了Spring的GenericFilterBean.

当我调用控制器时,我得到低于输出,这显示过滤器命中两次.

filter A before
filter A before
mycontroller invoke
filter A after
filter A after
Run Code Online (Sandbox Code Playgroud)

我的观察是,这个额外的调用使用Spring容器调用,因为如果filter没有注册为bean,它只会被命中一次.是什么原因,我该如何解决?

java spring spring-mvc spring-security spring-boot

8
推荐指数
1
解决办法
3713
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1

spring-mvc ×1

spring-security ×1