修复 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

@@ -21,7 +21,7 @@ public class TestController {
+ "<h1 style='text-align: center;'>资源页 (登录后才可进入本页面) </h1>" + "<h1 style='text-align: center;'>资源页 (登录后才可进入本页面) </h1>"
+ "<hr/>" + "<hr/>"
+ "<p style='text-align: center;'> Sa-Token " + SaTokenConsts.VERSION_NO + " </p>"; + "<p style='text-align: center;'> Sa-Token " + SaTokenConsts.VERSION_NO + " </p>";
return str; return str;
} }
} }

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 -> {
// 未登录时直接转发到login.html页面 SaRouter
if (SaQuickManager.getConfig().getAuth() && StpUtil.isLogin() == false) { .match(SaQuickManager.getConfig().getInclude().split(","))
SaHolder.getRequest().forward("/saLogin"); .notMatch(SaQuickManager.getConfig().getExclude().split(","))
SaRouter.back(); .check(r -> {
} // 未登录时直接转发到login.html页面
if (SaQuickManager.getConfig().getAuth() && StpUtil.isLogin() == false) {
SaHolder.getRequest().forward("/saLogin");
SaRouter.back();
}
});
}). }).
// 异常处理函数:每次认证函数发生异常时执行此函数 // 异常处理函数:每次认证函数发生异常时执行此函数