zuul学习六:禁用过滤器
2017-08-14 本文已影响119人
二月_春风
不论是核心过滤器还是自定义过滤器,只要在api网关应用中为它们创建了实例,那么默认情况下,它们都是启用状态的。那么如果有些过滤器不想使用了,如何禁用呢?
一般我们认为通过重写shouldFilter逻辑,让它返回false,这样该过滤器对于任何请求都不会被执行,基本实现了对过滤器的禁用。对于自定义过滤器来说似乎是实现了过滤器不生效的功能,但是这样的做法缺乏灵活性。由于直接要修改过滤器逻辑,我们不得不重新编译程序,并且如果该过滤器在某段时间还有可能被启用的时候,又得重新编译程序。同时,对于核心过滤器来说,更为麻烦,不得不获取源码来进行修改和编译。
实际上,可以通过配置来禁用:
zuul.<SimpleClassName>.<filterType>.disable=true
<SimpleClassName>
代表过滤器的类名,<filterType>
代表过滤器类型,如下:
zuul.AccessFilter.pre.disable=true
该参数配置除了可以对自定义的过滤器进行禁用配置之外,很多时候可以用它来禁用spring cloud zuul中默认定义的核心过滤器。这样我们就可以抛开spring cloud zuul
自带的那套核心过滤器(上一节我们说过),实现一套更符合我们实际需求的处理机制。
本博客代码
代码地址