美文网首页spring cloudspringcloud学习
zuul学习六:禁用过滤器

zuul学习六:禁用过滤器

作者: 二月_春风 | 来源:发表于2017-08-14 22:19 被阅读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

    本博客代码
    代码地址

    相关文章

      网友评论

      • 4097f80e6815:博主它的实现原理有了解过吗,我看ZuulProperties都没这几个字段的映射,而且那些filter注入的时候也没加@ConditionalOnProperty去控制

      本文标题:zuul学习六:禁用过滤器

      本文链接:https://www.haomeiwen.com/subject/wqkcrxtx.html