quick-login插件新增拦截与放行路径配置

This commit is contained in:
click33
2021-07-09 20:41:35 +08:00
parent 936dfe333d
commit 0bc8982212
6 changed files with 37 additions and 20 deletions

View File

@@ -80,6 +80,12 @@ public class SaResult implements Serializable{
public static SaResult error(String msg) { public static SaResult error(String msg) {
return new SaResult(CODE_ERROR, msg, null); return new SaResult(CODE_ERROR, msg, null);
} }
// 构建指定状态码
public static SaResult get(int code, String msg, Object data) {
return new SaResult(code, msg, data);
}
/* (non-Javadoc) /* (non-Javadoc)
* @see java.lang.Object#toString() * @see java.lang.Object#toString()

View File

@@ -16,6 +16,10 @@ sa:
title: Sa-Token 登录 title: Sa-Token 登录
# 是否显示底部版权信息 # 是否显示底部版权信息
copr: true copr: true
# 指定拦截路径
# include: /**
# 指定排除路径
# exclude: /sss,/fff
# 将本地磁盘的某个路径作为静态资源开放 # 将本地磁盘的某个路径作为静态资源开放
# dir: file:E:\static # dir: file:E:\static

View File

@@ -113,6 +113,10 @@ sa:
title: Sa-Token 登录 title: Sa-Token 登录
# 是否显示底部版权信息 # 是否显示底部版权信息
copr: true copr: true
# 指定拦截路径
# include: /**
# 指定排除路径
# exclude: /sss,/fff
``` ```
<br> <br>

View File

@@ -58,10 +58,11 @@ public class SaQuickBean implements WebMvcConfigurer {
@Bean @Bean
@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(SaQuickManager.getConfig().getInclude().split(","))
.addExclude("/favicon.ico", "/saLogin", "/doLogin", "/sa-res/**"). .addExclude(SaQuickManager.getConfig().getExclude().split(","))
.addExclude("/favicon.ico", "/saLogin", "/doLogin", "/sa-res/**").
// 认证函数: 每次请求执行 // 认证函数: 每次请求执行
setAuth(r -> { setAuth(r -> {
// System.out.println("---------- 进入sa-token全局认证 -----------"); // System.out.println("---------- 进入sa-token全局认证 -----------");

View File

@@ -29,6 +29,9 @@ public class SaQuickConfig {
/** 配置拦截的路径,逗号分隔 */ /** 配置拦截的路径,逗号分隔 */
private String include = "/**"; private String include = "/**";
/** 配置拦截的路径,逗号分隔 */
private String exclude = "";
public Boolean getAuth() { public Boolean getAuth() {
return auth; return auth;
} }
@@ -84,6 +87,16 @@ public class SaQuickConfig {
public void setInclude(String include) { public void setInclude(String include) {
this.include = include; this.include = include;
} }
public String getExclude() {
return exclude;
}
public void setExclude(String exclude) {
this.exclude = exclude;
}
@Override @Override
public String toString() { public String toString() {
return "SaQuickConfig{" + return "SaQuickConfig{" +
@@ -94,6 +107,7 @@ public class SaQuickConfig {
", title='" + title + '\'' + ", title='" + title + '\'' +
", copr=" + copr + ", copr=" + copr +
", include='" + include + '\'' + ", include='" + include + '\'' +
", exclude='" + exclude + '\'' +
'}'; '}';
} }
} }

View File

@@ -1,8 +1,5 @@
package cn.dev33.satoken.quick.web; package cn.dev33.satoken.quick.web;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@@ -14,6 +11,7 @@ import cn.dev33.satoken.quick.SaQuickManager;
import cn.dev33.satoken.quick.config.SaQuickConfig; import cn.dev33.satoken.quick.config.SaQuickConfig;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaFoxUtil; import cn.dev33.satoken.util.SaFoxUtil;
import cn.dev33.satoken.util.SaResult;
/** /**
* 登录Controller * 登录Controller
@@ -34,7 +32,6 @@ public class SaQuickController {
return "sa-login.html"; return "sa-login.html";
} }
/** /**
* 登录接口 * 登录接口
* @param name 账号 * @param name 账号
@@ -43,31 +40,22 @@ public class SaQuickController {
*/ */
@PostMapping("/doLogin") @PostMapping("/doLogin")
@ResponseBody @ResponseBody
public Map<String, Object> doLogin(String name, String pwd) { public SaResult doLogin(String name, String pwd) {
// 参数完整性校验 // 参数完整性校验
if(SaFoxUtil.isEmpty(name) || SaFoxUtil.isEmpty(pwd)) { if(SaFoxUtil.isEmpty(name) || SaFoxUtil.isEmpty(pwd)) {
return getResult(500, "请输入账号和密码", null); return SaResult.get(500, "请输入账号和密码", null);
} }
// 密码校验 // 密码校验
SaQuickConfig config = SaQuickManager.getConfig(); SaQuickConfig config = SaQuickManager.getConfig();
if(name.equals(config.getName()) && pwd.equals(config.getPwd())) { if(name.equals(config.getName()) && pwd.equals(config.getPwd())) {
StpUtil.login(config.getName()); StpUtil.login(config.getName());
return getResult(200, "ok", StpUtil.getTokenInfo()); return SaResult.get(200, "ok", StpUtil.getTokenInfo());
} else { } else {
// 校验失败 // 校验失败
return getResult(500, "账号或密码输入错误", null); return SaResult.get(500, "账号或密码输入错误", null);
} }
} }
private Map<String, Object> getResult(int code, String msg, Object data) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", code);
map.put("msg", msg);
map.put("data", data);
return map;
}
} }