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 ecf888d0b..b413db9c2 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 @@ -1,10 +1,10 @@ package com.ruoyi.common.utils; +import cn.dev33.satoken.session.SaSession; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.http.HttpStatus; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.service.UserService; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.spring.SpringUtils; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; /** @@ -47,7 +47,9 @@ public class SecurityUtils { **/ public static SysUser getUser() { try { - return SpringUtils.getBean(UserService.class).selectUserById(getUserId()); + SaSession session = StpUtil.getSession(); + SysUser currentUser = session.getModel("currentUser", SysUser.class); + return currentUser; } catch (Exception e) { throw new ServiceException("获取用户信息异常", HttpStatus.HTTP_UNAUTHORIZED); } 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 08098ddc0..e96cd750c 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 @@ -1,5 +1,6 @@ package com.ruoyi.system.service; +import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.entity.SysUser; @@ -14,7 +15,6 @@ import com.ruoyi.common.exception.user.UserPasswordNotMatchException; 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; @@ -73,6 +73,9 @@ public class SysLoginService { recordLoginInfo(user.getUserId(), username); // 生成token LoginUtils.loginByDevice(user.getUserId(), UserType.SYS_USER, DeviceType.PC); + // 保存用户信息到UserSession + SaSession session = StpUtil.getSession(true); + session.set("currentUser", user); return StpUtil.getTokenValue(); }