禁止弹簧启动将@Bean过滤器添加到过滤链

时间:2016-07-07 07:30:13

标签: spring spring-boot

我为shiro创建了一个过滤器,使用@Bean,但是spring boot将它添加到servlet filterchain。

我在shiro filterChainDefinitions中使用它:

shiroFilterFactoryBean.getFilters().put("apiValid", getApiValidFilter()); 

@Bean(name = "apiValid") 
public ApiValidFilter getApiValidFilter() { 
    return new ApiValidFilter(); 
} 

我希望过滤器作为一个spring bean,从spring中获益,比如使用@Autowired,但不希望它自动添加到filterchain。

如何配置spring boot以防止此行为?

1 个答案:

答案 0 :(得分:1)

作为described in the documentation,您可以为FilterRegistrationBean创建Filter并将其标记为已停用:

@Bean
public FilterRegistrationBean registration(MyFilter filter) {
    FilterRegistrationBean registration = new FilterRegistrationBean(filter);
    registration.setEnabled(false);
    return registration;
}