2016-07-07 100 views
0

我为shiro创建一个过滤器,使用@Bean,但弹簧启动将它添加到servlet过滤链。禁止弹簧启动添加@Bean过滤器到过滤链

我用它在四郎filterChainDefinitions:

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

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

我想要的过滤器作为一个Spring bean,从春天得到好处,就像使用@Autowired,但不希望将其添加加入到FilterChain自动。

如何配置弹簧引导以防止此行为?

+0

那么你打算怎么把它添加到过滤器链?没有被添加的过滤器几乎是无用的。 –

+0

请不要将代码块添加为注释,而是改善您的问题。 –

回答

1

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

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

谢谢!有用。 我想知道,spring boot怎么添加@Bean过滤器来自动过滤链? – tkec