From 5e354f3ae260eb7457e34d2f61caf3979114e11a Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Sun, 21 Apr 2024 18:58:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=96=B0=E5=A2=9E=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E6=89=A7=E8=A1=8C=E9=A1=BA=E5=BA=8F=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/up/global-filter.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/sa-token-doc/up/global-filter.md b/sa-token-doc/up/global-filter.md index fe2f5a32..b25efc62 100644 --- a/sa-token-doc/up/global-filter.md +++ b/sa-token-doc/up/global-filter.md @@ -90,6 +90,33 @@ public class SaTokenConfigure { JSON 工具类可参考:[Hutool-Json](https://hutool.cn/docs/#/json/JSONUtil) +### 自定义过滤器执行顺序 + +SaServletFilter 默认执行顺序为 `-100`,如果你要自定义过滤器的执行顺序,可以使用 `FilterRegistrationBean` 注册,参考: + +``` java +/** + * 注册 [Sa-Token 全局过滤器] + */ +@Bean +public FilterRegistrationBean getSaServletFilter() { + FilterRegistrationBean frBean = new FilterRegistrationBean<>(); + frBean.setFilter( + new SaServletFilter() + .addInclude("/**") + .setAuth(obj -> { + // .... + }) + // 等等,其它代码 ... + ); + frBean.setOrder(100); // 更改顺序为 -101 + return frBean; +} +``` + +在 SpringBoot 中, Order 值越小,执行时机越靠前。 + + ### 在 WebFlux 中注册过滤器 `Spring WebFlux`中不提供拦截器机制,因此若你的项目需要路由鉴权功能,过滤器是你唯一的选择,在`Spring WebFlux`注册过滤器的流程与上述流程几乎完全一致, 除了您需要将过滤器名称由`SaServletFilter`更换为`SaReactorFilter`以外,其它所有步骤均可参考以上示例。