我为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以防止此行为?
答案 0 :(得分:1)
作为described in the documentation,您可以为FilterRegistrationBean
创建Filter
并将其标记为已停用:
@Bean
public FilterRegistrationBean registration(MyFilter filter) {
FilterRegistrationBean registration = new FilterRegistrationBean(filter);
registration.setEnabled(false);
return registration;
}