修复 sa-token-quick-login 插件指定拦截排除路由不生效的问题

This commit is contained in:
click33
2022-10-20 06:16:02 +08:00
parent fd829c34b9
commit 6b9901499a
3 changed files with 16 additions and 11 deletions

View File

@@ -19,7 +19,7 @@ sa:
# 指定拦截路径 # 指定拦截路径
# include: /** # include: /**
# 指定排除路径 # 指定排除路径
# exclude: /sss,/fff # exclude: /1.jpg
# 将本地磁盘的某个路径作为静态资源开放 # 将本地磁盘的某个路径作为静态资源开放
# dir: file:E:\static # dir: file:E:\static

View File

@@ -41,17 +41,22 @@ public class SaQuickRegister {
@Order(SaTokenConsts.ASSEMBLY_ORDER - 1) @Order(SaTokenConsts.ASSEMBLY_ORDER - 1)
public SaServletFilter getSaServletFilter() { public SaServletFilter getSaServletFilter() {
return new SaServletFilter() return new SaServletFilter()
// 拦截路由 & 放行路由 // 拦截路由
.addInclude(SaQuickManager.getConfig().getInclude().split(",")) .addInclude("/**")
.addExclude(SaQuickManager.getConfig().getExclude().split(",")) // 排除掉登录相关接口,不需要鉴权的
.addExclude("/favicon.ico", "/saLogin", "/doLogin", "/sa-res/**"). .addExclude("/favicon.ico", "/saLogin", "/doLogin", "/sa-res/**").
// 认证函数: 每次请求执行 // 认证函数: 每次请求执行
setAuth(r -> { setAuth(obj -> {
SaRouter
.match(SaQuickManager.getConfig().getInclude().split(","))
.notMatch(SaQuickManager.getConfig().getExclude().split(","))
.check(r -> {
// 未登录时直接转发到login.html页面 // 未登录时直接转发到login.html页面
if (SaQuickManager.getConfig().getAuth() && StpUtil.isLogin() == false) { if (SaQuickManager.getConfig().getAuth() && StpUtil.isLogin() == false) {
SaHolder.getRequest().forward("/saLogin"); SaHolder.getRequest().forward("/saLogin");
SaRouter.back(); SaRouter.back();
} }
});
}). }).
// 异常处理函数:每次认证函数发生异常时执行此函数 // 异常处理函数:每次认证函数发生异常时执行此函数