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

@@ -81,6 +81,12 @@ public class SaResult implements Serializable{
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)
* @see java.lang.Object#toString()
*/

View File

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

View File

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

View File

@@ -58,9 +58,10 @@ public class SaQuickBean implements WebMvcConfigurer {
@Bean
@Order(SaTokenConsts.ASSEMBLY_ORDER - 1)
public SaServletFilter getSaServletFilter() {
return new SaServletFilter().
return new SaServletFilter()
// 拦截路由 & 放行路由
addInclude(SaQuickManager.getConfig().getInclude().split(","))
.addInclude(SaQuickManager.getConfig().getInclude().split(","))
.addExclude(SaQuickManager.getConfig().getExclude().split(","))
.addExclude("/favicon.ico", "/saLogin", "/doLogin", "/sa-res/**").
// 认证函数: 每次请求执行
setAuth(r -> {

View File

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

View File

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