惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
M
MIT News - Artificial intelligence
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 聂微东
U
Unit 42
Martin Fowler
Martin Fowler
腾讯CDC
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky

Java

开源:用刚发布的 Spring AI 2.0.1,撸了一个全功能 Agent - V2EX 纯开源 Nexus 替代方案 kkRepo 1.0.0 正式发布,新增 R/CRAN、Go Hosted 和多套 UI 主题 - V2EX 不想写代码,但想要集成一个登录页面? Sa-Token-Quick-Login 帮你实现! - V2EX 善于学习的 Java 后端朋友们,想请教下你是如何榨干自己的工作项目经验,把它沉淀下来慢慢积攒成自己的能力的? - V2EX Java Crac 几乎正式可用 - V2EX Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能! - V2EX 可以下线 Nexus 了:纯开源制品仓库 kkRepo v0.9.0 发布,新增 Alpine、Hugging Face Models 与全局搜索 - V2EX Java 转 native 究竟行不行?无需精通 graalvm native-image 配置就能打包 native exe 方法分享。 - V2EX fastjson 居然停止维护了 - V2EX happens-before 详解 华为的毕昇 JDK 8 AppCDS 特性稳定吗? 我把 Java 开发的 kkRepo 支持 AOT 编译, 1s 极速启动,空闲内存小于 200MB fastjson1.x 最新版本疑似又出 RCE 漏洞了 讲讲我怎么获得 kkRepo 的首个企业用户,成功替换掉 Nexus,每年节省 $1,620 PRO 订阅费用 Sonatype 正引入 Maven Central 仓库发布使用情况可见性和针对高流量发布活动的限制 让 Java 再次伟大,没有人比我更懂得如何打包!(分享一个四两拨千斤的多 jar 打包 exe 方式) 使用 kkRepo 搭建 Maven 私服 Nexus 的平替 neuxs-plus 开源涉嫌商标侵权,被迫改名 kkRepo 我在 IDEA tab 里养了一只猫 Java 确实是内存高效的 用 AI 把 visualvm 的部分功能界面换了个马甲 javaer 现在出去面试 问哪些内容 关于在 wsl 中使用 idea 进行 Java 开发的问题 求助, Fortify 漏扫问题解决 微信 ClawBot 和企微 AIBot 的 Java SDK 老业务信创重构选型大家有啥建议 ai 编程的情况在你们使用什么 IDE 下面这段 Java 多态的代码,如何才能改为 Go、 Python 、JS、C++版本? JDK 26 发布,非 lts 版本 DoytoQuery vs SpringDataJPA
sa-token + spring cloud gateway 过滤器顺序问题
nitouge · 2026-04-13 · via Java

执行顺序(从小到大): 1.TRACE_ID_ORDER - 生成 TraceId (最高优先级) 2.BLACK_LIST_ORDER - 黑名单检查(尽早拦截) 3.REQUEST_CONTEXT_ORDER - 缓存请求体(为后续过滤器提供数据) 4.XSS_INJECTION_ORDER - XSS 注入检查 5.SQL_INJECTION_ORDER - SQL 注入检查 6.RATE_LIMITER_ORDER - 限流检查 7.API_LOG_ORDER - API 日志记录 8.AUTH_ORDER - Sa-Token 认证鉴权 9.JWT_BLACKLIST_ORDER - JWT 黑名单检查 10.FORWARD_AUTH_ORDER - 转发认证信息 11.业务处理 12.RESPONSE_CONTEXT_ORDER - 缓存响应体 13.REMOVE_CONTEXT_ORDER - 清理上下文(最低优先级)

Auth 是 WebFilter ( SaReactorFilter )”这一点决定了它一定会先于所有 GlobalFilter 执行。也就是说,按你写的序列把 Auth 放在第 8 位( TraceId 、黑名单、注入之后)是做不到的,除非把认证改造成 GlobalFilter (不走 SaReactorFilter )。所以:

如果保留 Sa-Token 的 SaReactorFilter (推荐做法),实际顺序一定是:WebFilter 阶段先认证,再进入 GlobalFilter 阶段做 TraceId/黑名单/注入/限流/日志等。 你给出的序列可作为 GlobalFilter 之间的相对顺序,但无法跨越 WebFilter 与 GlobalFilter 的边界 如果认证( Auth )放在最前面,未认证或非法请求可能直接被拦截,导致 API 日志和上下文处理没有执行 我这个 filter 顺序是否有问题,下面是整理的部分

Filter 类型 依赖 推荐 order
CORS WebFilter - Integer.MIN_VALUE
Auth(Sa-Token) WebFilter - -101
Actuator WebFilter - -100 (可选)
TraceId GlobalFilter Integer.MIN_VALUE
RequestContext GlobalFilter TraceId Integer.MIN_VALUE+20
Blacklist GlobalFilter/WebFilter 可依赖 Auth Integer.MIN_VALUE+10(GlobalFilter)
XSS Injection GlobalFilter RequestContext Integer.MIN_VALUE+30
SQL Injection GlobalFilter RequestContext Integer.MIN_VALUE+40
Rate Limiter GlobalFilter RequestContext / IP Integer.MIN_VALUE+50
API Log GlobalFilter RequestContext Integer.MIN_VALUE+60
JWT Blacklist GlobalFilter Auth -90
Forward Auth GlobalFilter Auth -80
Business 路由转发 - -
ResponseContext GlobalFilter RequestContext WRITE_RESPONSE_FILTER_ORDER-1
RemoveContext GlobalFilter 全局上下文 Integer.MAX_VALUE