不論是核心過濾器還是自定義過濾器,只要在api網(wǎng)關應用中為它們創(chuàng)建了實例撮珠,那么默認情況下,它們都是啟用狀態(tài)的金矛。那么如果有些過濾器不想使用了芯急,如何禁用呢勺届?
一般我們認為通過重寫shouldFilter邏輯,讓它返回false娶耍,這樣該過濾器對于任何請求都不會被執(zhí)行免姿,基本實現(xiàn)了對過濾器的禁用。對于自定義過濾器來說似乎是實現(xiàn)了過濾器不生效的功能榕酒,但是這樣的做法缺乏靈活性胚膊。由于直接要修改過濾器邏輯,我們不得不重新編譯程序想鹰,并且如果該過濾器在某段時間還有可能被啟用的時候紊婉,又得重新編譯程序。同時杖挣,對于核心過濾器來說肩榕,更為麻煩,不得不獲取源碼來進行修改和編譯惩妇。
實際上株汉,可以通過配置來禁用:
zuul.<SimpleClassName>.<filterType>.disable=true
<SimpleClassName>
代表過濾器的類名,<filterType>
代表過濾器類型歌殃,如下:
zuul.AccessFilter.pre.disable=true
該參數(shù)配置除了可以對自定義的過濾器進行禁用配置之外乔妈,很多時候可以用它來禁用spring cloud zuul中默認定義的核心過濾器。這樣我們就可以拋開spring cloud zuul
自帶的那套核心過濾器(上一節(jié)我們說過)氓皱,實現(xiàn)一套更符合我們實際需求的處理機制路召。
參考博客
官網(wǎng)Disable Zuul Filters
本博客代碼
代碼地址