From e763381186c3a1f74ed416ea79767ac73b984745 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 03 十二月 2021 18:46:49 +0800
Subject: [PATCH] update [重磅更新] 登录流程升级 支持缓存
---
ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java | 10
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java | 4
ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaInterfaceImpl.java | 38 ++++++
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java | 1
ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java | 2
ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java | 30 ----
ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java | 2
ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java | 7
/dev/null | 51 --------
ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java | 13 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 3
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java | 14 +-
ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java | 63 +++++++--
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 3
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java | 10 -
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java | 83 +++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/listener/SysUserImportListener.java | 3
20 files changed, 211 insertions(+), 137 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 5cf5170..0a45d73 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginBody;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.service.ISysMenuService;
@@ -99,7 +100,7 @@
@ApiOperation("鑾峰彇璺敱淇℃伅")
@GetMapping("getRouters")
public AjaxResult<List<RouterVo>> getRouters() {
- Long userId = SecurityUtils.getUserId();
+ Long userId = LoginUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
index 50ba930..ee97048 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
@@ -113,10 +113,9 @@
public AjaxResult<Map<String, Object>> avatar(@RequestPart("avatarfile") MultipartFile file) {
Map<String,Object> ajax = new HashMap<>();
if (!file.isEmpty()) {
- SysUser user = SecurityUtils.getUser();
SysOss oss = iSysOssService.upload(file);
String avatar = oss.getUrl();
- if (userService.updateUserAvatar(user.getUserName(), avatar)) {
+ if (userService.updateUserAvatar(getUsername(), avatar)) {
ajax.put("imgUrl", avatar);
return AjaxResult.success(ajax);
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
index 2f1c6ed..8aed41c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
@@ -1,8 +1,8 @@
package com.ruoyi.common.core.controller;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.StringUtils;
/**
@@ -70,28 +70,28 @@
/**
* 鑾峰彇鐢ㄦ埛缂撳瓨淇℃伅
*/
- public SysUser getUser() {
- return SecurityUtils.getUser();
+ public LoginUser getUser() {
+ return LoginUtils.getLoginUser();
}
/**
* 鑾峰彇鐧诲綍鐢ㄦ埛id
*/
public Long getUserId() {
- return SecurityUtils.getUserId();
+ return LoginUtils.getUserId();
}
/**
* 鑾峰彇鐧诲綍閮ㄩ棬id
*/
public Long getDeptId() {
- return SecurityUtils.getDeptId();
+ return LoginUtils.getDeptId();
}
/**
* 鑾峰彇鐧诲綍鐢ㄦ埛鍚�
*/
public String getUsername() {
- return SecurityUtils.getUsername();
+ return LoginUtils.getUsername();
}
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
new file mode 100644
index 0000000..7554e3f
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
@@ -0,0 +1,83 @@
+package com.ruoyi.common.core.domain.model;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * 鐧诲綍鐢ㄦ埛韬唤鏉冮檺
+ *
+ * @author Lion Li
+ */
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class LoginUser implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鐢ㄦ埛ID
+ */
+ private Long userId;
+
+ /**
+ * 閮ㄩ棬ID
+ */
+ private Long deptId;
+
+ /**
+ * 鐢ㄦ埛鍞竴鏍囪瘑
+ */
+ private String token;
+
+ /**
+ * 鐧诲綍鏃堕棿
+ */
+ private Long loginTime;
+
+ /**
+ * 杩囨湡鏃堕棿
+ */
+ private Long expireTime;
+
+ /**
+ * 鐧诲綍IP鍦板潃
+ */
+ private String ipaddr;
+
+ /**
+ * 鐧诲綍鍦扮偣
+ */
+ private String loginLocation;
+
+ /**
+ * 娴忚鍣ㄧ被鍨�
+ */
+ private String browser;
+
+ /**
+ * 鎿嶄綔绯荤粺
+ */
+ private String os;
+
+ /**
+ * 鑿滃崟鏉冮檺
+ */
+ private Set<String> menuPermission;
+
+ /**
+ * 瑙掕壊鏉冮檺
+ */
+ private Set<String> rolePermission;
+
+ /**
+ * 鐢ㄦ埛鍚�
+ */
+ private String username;
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java
index 94dbcdd..99a8880 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java
@@ -10,7 +10,7 @@
public class UserException extends BaseException {
private static final long serialVersionUID = 1L;
- public UserException(String code, Object[] args) {
+ public UserException(String code, Object... args) {
super("user", code, args, null);
}
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java
index 9cd759f..2544fe8 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java
@@ -1,6 +1,8 @@
package com.ruoyi.common.utils;
import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.DeviceType;
import com.ruoyi.common.enums.UserType;
import com.ruoyi.common.exception.UtilException;
@@ -13,39 +15,68 @@
*/
public class LoginUtils {
+ private final static String LOGIN_USER_KEY = "loginUser";
+
/**
* 鐧诲綍绯荤粺
* 閽堝涓ゅ鐢ㄦ埛浣撶郴
- * @param userId 鐢ㄦ埛id
+ * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅
*/
- public static void login(Long userId, UserType userType) {
- StpUtil.login(userType.getUserType() + userId);
+ public static void login(LoginUser loginUser, UserType userType) {
+ StpUtil.login(userType.getUserType() + loginUser.getUserId());
+ StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
}
/**
* 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷
* 閽堝涓�濂楃敤鎴蜂綋绯�
- * @param userId 鐢ㄦ埛id
+ * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅
*/
- public static void loginByDevice(Long userId, UserType userType, DeviceType deviceType) {
- StpUtil.login(userType.getUserType() + userId, deviceType.getDevice());
+ public static void loginByDevice(LoginUser loginUser, UserType userType, DeviceType deviceType) {
+ StpUtil.login(userType.getUserType() + loginUser.getUserId(), deviceType.getDevice());
+ StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser);
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛
+ **/
+ public static LoginUser getLoginUser() {
+ return (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY);
}
/**
* 鑾峰彇鐢ㄦ埛id
*/
public static Long getUserId() {
- String loginId = StpUtil.getLoginIdAsString();
- String userId;
- String replace = "";
- if (StringUtils.contains(loginId, UserType.SYS_USER.getUserType())) {
- userId = StringUtils.replace(loginId, UserType.SYS_USER.getUserType(), replace);
- } else if (StringUtils.contains(loginId, UserType.APP_USER.getUserType())){
- userId = StringUtils.replace(loginId, UserType.APP_USER.getUserType(), replace);
- } else {
- throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId);
+ LoginUser loginUser = getLoginUser();
+ if (ObjectUtil.isNull(loginUser)) {
+ String loginId = StpUtil.getLoginIdAsString();
+ String userId;
+ String replace = "";
+ if (StringUtils.contains(loginId, UserType.SYS_USER.getUserType())) {
+ userId = StringUtils.replace(loginId, UserType.SYS_USER.getUserType(), replace);
+ } else if (StringUtils.contains(loginId, UserType.APP_USER.getUserType())){
+ userId = StringUtils.replace(loginId, UserType.APP_USER.getUserType(), replace);
+ } else {
+ throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId);
+ }
+ return Long.parseLong(userId);
}
- return Long.parseLong(userId);
+ return loginUser.getUserId();
+ }
+
+ /**
+ * 鑾峰彇閮ㄩ棬ID
+ **/
+ public static Long getDeptId() {
+ return getLoginUser().getDeptId();
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛璐︽埛
+ **/
+ public static String getUsername() {
+ return getLoginUser().getUsername();
}
/**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
index ecf888d..4112748 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
@@ -13,41 +13,13 @@
* @author Long Li
*/
public class SecurityUtils {
- /**
- * 鐢ㄦ埛ID
- **/
- public static Long getUserId() {
- return LoginUtils.getUserId();
- }
-
- /**
- * 鑾峰彇閮ㄩ棬ID
- **/
- public static Long getDeptId() {
- try {
- return getUser().getDeptId();
- } catch (Exception e) {
- throw new ServiceException("鑾峰彇閮ㄩ棬ID寮傚父", HttpStatus.HTTP_UNAUTHORIZED);
- }
- }
-
- /**
- * 鑾峰彇鐢ㄦ埛璐︽埛
- **/
- public static String getUsername() {
- try {
- return getUser().getUserName();
- } catch (Exception e) {
- throw new ServiceException("鑾峰彇鐢ㄦ埛璐︽埛寮傚父", HttpStatus.HTTP_UNAUTHORIZED);
- }
- }
/**
* 鑾峰彇鐢ㄦ埛
**/
public static SysUser getUser() {
try {
- return SpringUtils.getBean(UserService.class).selectUserById(getUserId());
+ return SpringUtils.getBean(UserService.class).selectUserById(LoginUtils.getUserId());
} catch (Exception e) {
throw new ServiceException("鑾峰彇鐢ㄦ埛淇℃伅寮傚父", HttpStatus.HTTP_UNAUTHORIZED);
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
index dcf8058..393b2e6 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
@@ -7,7 +7,6 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.reflect.ReflectUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
index 78a4b62..e7aa909 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
@@ -2,12 +2,11 @@
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.dto.OperLogDTO;
-import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.service.OperLogService;
import com.ruoyi.common.enums.BusinessStatus;
import com.ruoyi.common.enums.HttpMethod;
import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -60,9 +59,6 @@
protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) {
try {
- // 鑾峰彇褰撳墠鐨勭敤鎴�
- SysUser sysUser = SecurityUtils.getUser();
-
// *========鏁版嵁搴撴棩蹇�=========*//
OperLogDTO operLog = new OperLogDTO();
operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
@@ -70,9 +66,7 @@
String ip = ServletUtils.getClientIP();
operLog.setOperIp(ip);
operLog.setOperUrl(ServletUtils.getRequest().getRequestURI());
- if (sysUser != null) {
- operLog.setOperName(sysUser.getUserName());
- }
+ operLog.setOperName(LoginUtils.getUsername());
if (e != null) {
operLog.setStatus(BusinessStatus.FAIL.ordinal());
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java
index 1d2f295..2604245 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SaTokenConfig.java
@@ -6,7 +6,7 @@
import cn.dev33.satoken.router.SaRouter;
import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
-import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.config.properties.SecurityProperties;
import lombok.extern.slf4j.Slf4j;
@@ -43,7 +43,7 @@
.notMatch(securityProperties.getExcludes())
.check(() -> {
if (log.isDebugEnabled()) {
- Long userId = SecurityUtils.getUserId();
+ Long userId = LoginUtils.getUserId();
if (StringUtils.isNotNull(userId)) {
log.debug("鍓╀綑鏈夋晥鏃堕棿: {}", StpUtil.getTokenTimeout());
log.debug("涓存椂鏈夋晥鏃堕棿: {}", StpUtil.getTokenActivityTimeout());
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java
index 9dade4e..dfda513 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/handler/CreateAndUpdateMetaObjectHandler.java
@@ -4,9 +4,9 @@
import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.ruoyi.common.core.domain.BaseEntity;
-import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
@@ -76,14 +76,14 @@
* 鑾峰彇鐧诲綍鐢ㄦ埛鍚�
*/
private String getLoginUsername() {
- SysUser user;
+ LoginUser user;
try {
- user = SecurityUtils.getUser();
+ user = LoginUtils.getLoginUser();
} catch (Exception e) {
log.warn("鑷姩娉ㄥ叆璀﹀憡 => 鐢ㄦ埛鏈櫥褰�");
return null;
}
- return user.getUserName();
+ return user.getUsername();
}
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/dao/PlusSaTokenDao.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java
similarity index 98%
rename from ruoyi-framework/src/main/java/com/ruoyi/framework/dao/PlusSaTokenDao.java
rename to ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java
index 8da7a1b..556133c 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/dao/PlusSaTokenDao.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/dao/PlusSaTokenDao.java
@@ -1,4 +1,4 @@
-package com.ruoyi.framework.dao;
+package com.ruoyi.framework.satoken.dao;
import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.util.SaFoxUtil;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaInterfaceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaInterfaceImpl.java
new file mode 100644
index 0000000..e5bacd3
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/satoken/service/SaInterfaceImpl.java
@@ -0,0 +1,38 @@
+package com.ruoyi.framework.satoken.service;
+
+import cn.dev33.satoken.stp.StpInterface;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.enums.UserType;
+import com.ruoyi.common.utils.LoginUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class SaInterfaceImpl implements StpInterface {
+
+ @Override
+ public List<String> getPermissionList(Object loginId, String loginType) {
+ UserType userType = LoginUtils.getUserType(loginId);
+ if (userType == UserType.SYS_USER) {
+ LoginUser loginUser = LoginUtils.getLoginUser();
+ return new ArrayList<>(loginUser.getMenuPermission());
+ } else if (userType == UserType.APP_USER) {
+ // app绔潈闄愯繑鍥� 鑷鏍规嵁涓氬姟缂栧啓
+ }
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<String> getRoleList(Object loginId, String loginType) {
+ UserType userType = LoginUtils.getUserType(loginId);
+ if (userType == UserType.SYS_USER) {
+ LoginUser loginUser = LoginUtils.getLoginUser();
+ return new ArrayList<>(loginUser.getRolePermission());
+ } else if (userType == UserType.APP_USER) {
+ // app绔潈闄愯繑鍥� 鑷鏍规嵁涓氬姟缂栧啓
+ }
+ return new ArrayList<>();
+ }
+}
diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
index b53393f..35b1c95 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
@@ -9,10 +9,7 @@
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.JsonUtils;
-import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.generator.domain.GenTable;
import com.ruoyi.generator.domain.GenTableColumn;
@@ -159,7 +156,7 @@
@Override
@Transactional
public void importGenTable(List<GenTable> tableList) {
- String operName = SecurityUtils.getUsername();
+ String operName = LoginUtils.getUsername();
try {
for (GenTable table : tableList) {
String tableName = table.getTableName();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/listener/SysUserImportListener.java b/ruoyi-system/src/main/java/com/ruoyi/system/listener/SysUserImportListener.java
index d0fd7d0..c655110 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/listener/SysUserImportListener.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/listener/SysUserImportListener.java
@@ -7,6 +7,7 @@
import com.ruoyi.common.excel.ExcelListener;
import com.ruoyi.common.excel.ExcelResult;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -43,7 +44,7 @@
this.password = SpringUtils.getBean(ISysConfigService.class)
.selectConfigByKey("sys.user.initPassword");
this.isUpdateSupport = isUpdateSupport;
- this.operName = SecurityUtils.getUsername();
+ this.operName = LoginUtils.getUsername();
}
@Override
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
index 08098dd..ebc208d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java
@@ -3,6 +3,7 @@
import cn.dev33.satoken.stp.StpUtil;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.service.LogininforService;
import com.ruoyi.common.enums.DeviceType;
import com.ruoyi.common.enums.UserStatus;
@@ -14,7 +15,6 @@
import com.ruoyi.common.utils.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@@ -36,6 +36,9 @@
@Autowired
private LogininforService asyncService;
+
+ @Autowired
+ private SysPermissionService permissionService;
/**
* 鐧诲綍楠岃瘉
@@ -68,11 +71,17 @@
asyncService.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"), request);
throw new UserPasswordNotMatchException();
}
+ LoginUser loginUser = new LoginUser();
+ loginUser.setUserId(user.getUserId());
+ loginUser.setDeptId(user.getDeptId());
+ loginUser.setUsername(user.getUserName());
+ loginUser.setMenuPermission(permissionService.getMenuPermission(user));
+ loginUser.setRolePermission(permissionService.getRolePermission(user));
asyncService.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"), request);
recordLoginInfo(user.getUserId(), username);
// 鐢熸垚token
- LoginUtils.loginByDevice(user.getUserId(), UserType.SYS_USER, DeviceType.PC);
+ LoginUtils.loginByDevice(loginUser, UserType.SYS_USER, DeviceType.PC);
return StpUtil.getTokenValue();
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SaInterfaceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SaInterfaceImpl.java
deleted file mode 100644
index 5dc66f2..0000000
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SaInterfaceImpl.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.ruoyi.system.service.impl;
-
-import cn.dev33.satoken.stp.StpInterface;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.enums.UserType;
-import com.ruoyi.common.utils.LoginUtils;
-import com.ruoyi.system.service.ISysUserService;
-import com.ruoyi.system.service.SysPermissionService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-@Component
-public class SaInterfaceImpl implements StpInterface {
-
- @Autowired
- private SysPermissionService sysPermissionService;
- @Autowired
- private ISysUserService iSysUserService;
-
- @Override
- public List<String> getPermissionList(Object loginId, String loginType) {
- UserType userType = LoginUtils.getUserType(loginId);
- if (userType == UserType.SYS_USER) {
- Long userId = LoginUtils.getUserId();
- SysUser user = iSysUserService.getById(userId);
- Set<String> menuPermission = sysPermissionService.getMenuPermission(user);
- return new ArrayList<>(menuPermission);
- } else if (userType == UserType.APP_USER) {
- // app绔潈闄愯繑鍥� 鑷鏍规嵁涓氬姟缂栧啓
- }
- return new ArrayList<>();
- }
-
- @Override
- public List<String> getRoleList(Object loginId, String loginType) {
- UserType userType = LoginUtils.getUserType(loginId);
- if (userType == UserType.SYS_USER) {
- Long userId = LoginUtils.getUserId();
- SysUser user = iSysUserService.getById(userId);
- Set<String> rolePermission = sysPermissionService.getRolePermission(user);
- return new ArrayList<>(rolePermission);
- } else if (userType == UserType.APP_USER) {
- // app绔潈闄愯繑鍥� 鑷鏍规嵁涓氬姟缂栧啓
- }
- return new ArrayList<>();
- }
-}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index 995bd2d..eccafb3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -11,7 +11,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.TreeBuildUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
@@ -154,7 +154,7 @@
*/
@Override
public void checkDeptDataScope(Long deptId) {
- if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+ if (!SysUser.isAdmin(LoginUtils.getUserId())) {
SysDept dept = new SysDept();
dept.setDeptId(deptId);
List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 7bad297..7d19191 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -8,8 +8,8 @@
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.SysRoleDept;
@@ -187,7 +187,7 @@
*/
@Override
public void checkRoleDataScope(Long roleId) {
- if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+ if (!SysUser.isAdmin(LoginUtils.getUserId())) {
SysRole role = new SysRole();
role.setRoleId(roleId);
List<SysRole> roles = SpringUtils.getAopProxy(this).selectRoleList(role);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 86f4642..7837b52 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.service.UserService;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.LoginUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
@@ -225,7 +226,7 @@
*/
@Override
public void checkUserDataScope(Long userId) {
- if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+ if (!SysUser.isAdmin(LoginUtils.getUserId())) {
SysUser user = new SysUser();
user.setUserId(userId);
List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
--
Gitblit v1.9.3