是否可以動態地在過濾器鏈中添加新過濾器?我的意思是通過檢查條件/配置,我們是否可以在過濾器鏈中包含或排除特定過濾器?動態添加新過濾器
動態添加新過濾器
回答
我相信這樣的要求的簡單解決方案是添加條件的過濾條件在doFilter方法來過濾鏈。您將始終在鏈中使用此過濾器,但是當條件不滿意時,過濾器會將控制權交給下一個過濾器。
感謝這個reply.If這是解決方案則是一個機會,過濾器類將不必要的執行?我同意這是一個簡單的解決方案。 – ANP
我認爲這是不可能在常規的web.xml文件。您可以考慮使用ServletContainerInitializer。這是以編程方式聲明您的Web應用程序配置的一種方式。
這意味着你可以通過編程設置Servlet,過濾器以及可以在常規web.xml中定義其他的事情。
E.g.在這個問題中描述瞭如何以編程方式聲明servlet Map servlet programmatically instead of using web.xml or annotations
如果您使用Spring框架,您還可以考慮使用Spring的回調來執行此操作。檢查這篇文章出來How to specify url-pattern for Servlet filters in WebApplicationInitializer?
這次春@ConditionalOnExpression註釋幫我加載基於配置的過濾器豆。
,我跟着
我的配置類(有@Configuration類)
使用@ConditionalOnExpression爲動態加載的bean定義一個bean的步驟(在配置文件基於)
見以下代碼片段
@Bean
@ConditionalOnExpression("#{environment.getProperty('security.oauth2.custom.filters').contains('XTokenFilter')}")
public FilterRegistrationBean xxTokenFilter() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
XTokenFilter xTokenFilter = new XTokenFilter();
xTokenFilter.setAuthenticationManager(XOuthenticationManager());
beanFactory.autowireBean(xTokenFilter);
registrationBean.setFilter(xTokenFilter);
registrationBean.setOrder(findOrderOfCustomFilters("XTokenFilter"));
return registrationBean;
}
此bean將加載當且僅當屬性「security.oauth2.custom.filters」co ntains值XTokenFilter。
- 1. 動態添加過濾器SQLAlchemy的TextClause
- 2. 動態過濾器
- 3. datatable過濾器更新動態
- 4. 在套件中添加動態過濾器
- 5. 將過濾器表達式動態添加到數組
- 6. 添加和刪除功能的動態搜索過濾器
- 7. 如何將Lucene過濾器添加爲動態條件?
- 8. JQuery的不更新:最後一個過濾器的動態添加元素
- 9. 禁止彈簧啓動添加@Bean過濾器到過濾鏈
- 10. ExtJS的5加過濾器,電網動態重新配置上
- 11. liipImagineBundle動態過濾器
- 12. VB.net過濾器datagrid動態
- 13. Wordpress過濾器添加meta?
- 14. 添加過濾器的jqGrid
- 15. 添加一個過濾器
- 16. 枝條添加過濾器
- 17. 動態過濾表達式添加到GridView濾鏡兩列
- 18. 在使用php時添加過濾器參數到流過濾器://過濾器
- 19. 報告服務:動態添加過濾器到服務器報告
- 20. 在戶外添加新過濾器的過程?
- 21. 添加默認過濾器顯然「禁用」過濾器原始
- 22. 向Glassfish服務器添加過濾器
- 23. Gridview動態添加新行
- 24. 動態添加通過DOM
- 25. 添加靜態意圖過濾器定義安裝
- 26. 動態過濾器,在ggvis中添加圖例並繪製離散X軸
- 27. 依賴Kendo網格與動態過濾器防止添加記錄
- 28. 添加動態'過濾器'IE8的CSS屬性沒有被正確分配
- 29. 爲動態數據網站(VS2010,EF4)添加自定義過濾器
- 30. 添加一個過濾器來動態地在Nunjucks中格式化日期值
是,是否有可能 –
@Timothy能否請您給我這個提示嗎? – ANP