spring cloudspringcloud学习

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自带的那套核心过滤器(上一节我们说过),实现一套更符合我们实际需求的处理机制。

参考博客
官网Disable Zuul Filters

本博客代码
代码地址

上一篇下一篇

猜你喜欢

热点阅读