是否可以動態地在過濾器鏈中添加新過濾器?我的意思是通過檢查條件/配置,我們是否可以在過濾器鏈中包含或排除特定過濾器?動態添加新過濾器
動態添加新過濾器
回答
我相信這樣的要求的簡單解決方案是添加條件的過濾條件在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. 在會話啓動時動態添加/刪除servlet過濾器
- 4. datatable過濾器更新動態
- 5. 如何在Django中動態添加過濾器?
- 6. 如何將動態日期過濾器添加到Access報告
- 7. 在angularjs中動態添加過濾器選項
- 8. 如何將Lucene過濾器添加爲動態條件?
- 9. 添加過濾器行,以動態創建knockout.js網格
- 10. 將過濾器表達式動態添加到數組
- 11. 動態添加尺寸到交叉過濾器
- 12. 在套件中添加動態過濾器
- 13. 添加和刪除功能的動態搜索過濾器
- 14. ZF2刷新輸入過濾器動態添加元素後形成
- 15. JQuery的不更新:最後一個過濾器的動態添加元素
- 16. 禁止彈簧啓動添加@Bean過濾器到過濾鏈
- 17. ExtJS的5加過濾器,電網動態重新配置上
- 18. 添加過濾器添加類在WordPress
- 19. 添加jquery添加MS過濾器
- 20. liipImagineBundle動態過濾器
- 21. 過濾器動態html表
- 22. Javascript動態過濾器
- 23. VB.net過濾器datagrid動態
- 24. 動態過濾器4
- 25. VLOOKUP在過濾器-ED範圍,同時自動添加新行
- 26. SAS添加過濾器
- 27. 添加過濾器到LiveGrid?
- 28. 添加類別過濾器
- 29. 添加條件過濾器
- 30. Wordpress過濾器添加meta?
是,是否有可能 –
@Timothy能否請您給我這個提示嗎? – ANP