mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-12-20 03:49:45 +08:00
quick-login插件新增拦截与放行路径配置
This commit is contained in:
@@ -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()
|
||||
*/
|
||||
|
||||
@@ -16,6 +16,10 @@ sa:
|
||||
title: Sa-Token 登录
|
||||
# 是否显示底部版权信息
|
||||
copr: true
|
||||
# 指定拦截路径
|
||||
# include: /**
|
||||
# 指定排除路径
|
||||
# exclude: /sss,/fff
|
||||
# 将本地磁盘的某个路径作为静态资源开放
|
||||
# dir: file:E:\static
|
||||
|
||||
|
||||
@@ -113,6 +113,10 @@ sa:
|
||||
title: Sa-Token 登录
|
||||
# 是否显示底部版权信息
|
||||
copr: true
|
||||
# 指定拦截路径
|
||||
# include: /**
|
||||
# 指定排除路径
|
||||
# exclude: /sss,/fff
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
@@ -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 -> {
|
||||
|
||||
@@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user