diff --git a/smallboot-api/common/auth/src/main/resources/application-auth.yml b/smallboot-api/common/auth/src/main/resources/application-auth.yml
index 201e33a..14dd123 100644
--- a/smallboot-api/common/auth/src/main/resources/application-auth.yml
+++ b/smallboot-api/common/auth/src/main/resources/application-auth.yml
@@ -13,15 +13,16 @@ sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: false
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
+ # tips: 使用 jwt-simple 模式后,is-share=false 恒等于 false。
is-share: false
# token风格
- token-style: random-128
+ # token-style: random-128
# 是否从cookie中读取token
is-read-cookie: false
# 是否从请求体里读取token
is-read-body: false
# 是否从head中读取token
- is-read-head: true
+ # is-read-head: true
# 是否输出操作日志
is-log: true
# 是否在初始化配置时打印版本字符画
diff --git a/smallboot-api/common/base/src/main/java/com/zhengqing/common/base/model/bo/JwtUserBO.java b/smallboot-api/common/base/src/main/java/com/zhengqing/common/base/model/bo/JwtUserBO.java
index c724954..9caeb46 100644
--- a/smallboot-api/common/base/src/main/java/com/zhengqing/common/base/model/bo/JwtUserBO.java
+++ b/smallboot-api/common/base/src/main/java/com/zhengqing/common/base/model/bo/JwtUserBO.java
@@ -7,6 +7,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
+import java.util.List;
+
/**
*
* 用户token信息
@@ -22,15 +24,18 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
public class JwtUserBO extends BaseBO {
- @ApiModelProperty(value = "认证来源")
+ @ApiModelProperty("认证来源")
private AuthSourceEnum authSourceEnum;
- @ApiModelProperty(value = "用户ID")
+ @ApiModelProperty("用户ID")
private String userId;
- @ApiModelProperty(value = "用户名")
+ @ApiModelProperty("用户名")
private String userName;
+ @ApiModelProperty("角色编码")
+ private List roleCodeList;
+
/**
* 获取B端用户ID
*/
diff --git a/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/WebAppConfig.java b/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/WebAppConfig.java
index 2712996..e7157f3 100644
--- a/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/WebAppConfig.java
+++ b/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/WebAppConfig.java
@@ -1,6 +1,6 @@
package com.zhengqing.common.core.config;
-import com.zhengqing.common.core.config.interceptor.HandlerInterceptorForTokenUser;
+import com.zhengqing.common.core.config.interceptor.HandlerInterceptorForToken;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -20,7 +20,7 @@ public class WebAppConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 可添加多个
- registry.addInterceptor(new HandlerInterceptorForTokenUser()).addPathPatterns("/**");
+ registry.addInterceptor(new HandlerInterceptorForToken()).addPathPatterns("/**");
}
}
diff --git a/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForTokenUser.java b/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForToken.java
similarity index 54%
rename from smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForTokenUser.java
rename to smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForToken.java
index 2822a52..95237f4 100644
--- a/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForTokenUser.java
+++ b/smallboot-api/common/core/src/main/java/com/zhengqing/common/core/config/interceptor/HandlerInterceptorForToken.java
@@ -1,19 +1,29 @@
package com.zhengqing.common.core.config.interceptor;
import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
+import com.google.common.collect.Lists;
import com.zhengqing.common.base.constant.AppConstant;
+import com.zhengqing.common.base.constant.SecurityConstant;
import com.zhengqing.common.base.context.JwtUserContext;
import com.zhengqing.common.base.context.SysUserContext;
import com.zhengqing.common.base.context.UmsUserContext;
+import com.zhengqing.common.base.enums.ApiResultCodeEnum;
+import com.zhengqing.common.base.exception.MyException;
import com.zhengqing.common.base.model.bo.JwtUserBO;
import com.zhengqing.common.core.config.WebAppConfig;
+import com.zhengqing.common.redis.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.util.PathMatcher;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
/**
* 拦截器 -- token用户信息
@@ -22,7 +32,7 @@ import javax.servlet.http.HttpServletResponse;
* @description 注册使用参考 {@link WebAppConfig}
* @date 2022/1/10 16:28
*/
-public class HandlerInterceptorForTokenUser implements HandlerInterceptor {
+public class HandlerInterceptorForToken implements HandlerInterceptor {
/**
* 在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理
@@ -35,6 +45,10 @@ public class HandlerInterceptorForTokenUser implements HandlerInterceptor {
return true;
}
JwtUserBO jwtUserBO = JSONUtil.toBean(StpUtil.getLoginId().toString(), JwtUserBO.class);
+
+ // 校验权限
+ this.checkPermission(request, jwtUserBO);
+
JwtUserContext.set(jwtUserBO);
switch (jwtUserBO.getAuthSourceEnum()) {
case B:
@@ -51,6 +65,57 @@ public class HandlerInterceptorForTokenUser implements HandlerInterceptor {
return true;
}
+ /**
+ * 校验权限
+ *
+ * @param request 请求
+ * @param jwtUserBO 用户信息
+ * @return void
+ * @author zhengqingya
+ * @date 2023/2/13 15:52
+ */
+ private void checkPermission(HttpServletRequest request, JwtUserBO jwtUserBO) {
+ String method = request.getMethod();
+ String path = request.getRequestURI();
+ // "GET:/web/api/user/*"
+ String restfulPath = method + ":" + path;
+
+ /**
+ * URL鉴权
+ * [URL-角色集合]
+ * [{'key':'GET:/web/api/user/*','value':['ADMIN','TEST']},...]
+ */
+ Map
+
+
+
+
+
diff --git a/smallboot-web/src/views/error-page/404.vue b/smallboot-web/src/views/error-page/404.vue
index 07e8696..7f3007a 100644
--- a/smallboot-web/src/views/error-page/404.vue
+++ b/smallboot-web/src/views/error-page/404.vue
@@ -1,3 +1,228 @@
- 404
+
+
+
+
+
404错误!
+
+ {{ message }}
+
+
+ 对不起,您正在寻找的页面不存在。尝试检查URL的错误,然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
+
+
返回首页
+
+
+
+
+
+
+
diff --git a/smallboot-web/src/views/system/role/list.vue b/smallboot-web/src/views/system/role/list.vue
index b57de19..e38cc0a 100644
--- a/smallboot-web/src/views/system/role/list.vue
+++ b/smallboot-web/src/views/system/role/list.vue
@@ -99,5 +99,4 @@ async function deleteData(id: number) {
refreshTableData()
}
-
+