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:
@@ -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()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,10 @@ sa:
|
|||||||
title: Sa-Token 登录
|
title: Sa-Token 登录
|
||||||
# 是否显示底部版权信息
|
# 是否显示底部版权信息
|
||||||
copr: true
|
copr: true
|
||||||
|
# 指定拦截路径
|
||||||
|
# include: /**
|
||||||
|
# 指定排除路径
|
||||||
|
# exclude: /sss,/fff
|
||||||
```
|
```
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
@@ -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全局认证 -----------");
|
||||||
|
|||||||
@@ -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 + '\'' +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user