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