首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GlobalFilter对WebFilter

GlobalFilter对WebFilter
EN

Stack Overflow用户
提问于 2019-10-17 09:40:59
回答 1查看 2.5K关注 0票数 5

我在中迈出了第一步。在研究过程中,我想更好地理解GlobalFilter的使用。具体而言,我打算每次为(每个路由)应用一些过滤器。

阅读文档(参考文献)有两种方法可以达到我的目标。第一个是GlobalFilter的使用,第二个是在default-filters中有一个GatewayFilter

这两种解决方案都运行得很好,但是只适用于YAML配置中定义的路由。如果我有任何RouteLocator或RouterFunctions,我需要每次声明过滤器

代码语言:javascript
复制
.filters(f -> f.globalFilter("something"))

实现目标的唯一方法是直接使用WebFilter (参考文献)。

所以我的问题是,如果有人能解释GatewayFilter/GlobalFilterWebfilter这两个过滤器的区别

也许答案在Spring文档中,但我找不到。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2021-04-07 11:14:23

如果您希望为每一条路由(为YAML中定义的路由以及网关本身中的控制器/端点)设置一个过滤器,那么WebFilter应该是最好的选择。

如果希望为所有路由设置一个筛选器,但不希望对网关中的端点进行筛选,则可以使用默认筛选器/全局筛选器。

最后,您有可以为特定路由配置的GatewayFilters。

我在源代码中注意到,路由通过FilteringWebHandler,网关中的端点直接映射到控制器方法,它们并不真正通过这些处理程序(不过它们通过普通的WebFilters )。因此,上述各点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58429556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档