2016-07-07 121 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