From 02177069603e71f83e76ac5d969d65f9911b8481 Mon Sep 17 00:00:00 2001 From: zlyx <1242874891@qq.com> Date: 星期一, 24 七月 2023 18:05:01 +0800 Subject: [PATCH] update 优化 SaInterceptor 拦截器判断 token 客户端id是否有效 ; --- ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java | 40 +++++++++++++++++++--------------------- 1 files changed, 19 insertions(+), 21 deletions(-) diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index e79b9ba..22c160a 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -2,17 +2,17 @@ import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.context.model.SaStorage; +import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.dromara.common.core.constant.TenantConstants; import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.domain.model.LoginUser; -import org.dromara.common.core.enums.DeviceType; import org.dromara.common.core.enums.UserType; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; import java.util.Set; @@ -34,31 +34,21 @@ public static final String LOGIN_USER_KEY = "loginUser"; public static final String TENANT_KEY = "tenantId"; public static final String USER_KEY = "userId"; - - /** - * 鐧诲綍绯荤粺 - * - * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 - */ - public static void login(LoginUser loginUser) { - loginByDevice(loginUser, null); - } + public static final String CLIENT_KEY = "clientid"; /** * 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷 * 閽堝鐩稿悓鐢ㄦ埛浣撶郴涓嶅悓璁惧 * * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 + * @param model 閰嶇疆鍙傛暟 */ - public static void loginByDevice(LoginUser loginUser, DeviceType deviceType) { + public static void login(LoginUser loginUser, SaLoginModel model) { SaStorage storage = SaHolder.getStorage(); storage.set(LOGIN_USER_KEY, loginUser); storage.set(TENANT_KEY, loginUser.getTenantId()); storage.set(USER_KEY, loginUser.getUserId()); - SaLoginModel model = new SaLoginModel(); - if (ObjectUtil.isNotNull(deviceType)) { - model.setDevice(deviceType.getDevice()); - } + model = ObjectUtil.defaultIfNull(model, new SaLoginModel()); StpUtil.login(loginUser.getLoginId(), model.setExtra(TENANT_KEY, loginUser.getTenantId()) .setExtra(USER_KEY, loginUser.getUserId())); @@ -73,7 +63,11 @@ if (loginUser != null) { return loginUser; } - loginUser = (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY); + SaSession session = StpUtil.getTokenSession(); + if (ObjectUtil.isNull(session)) { + return null; + } + loginUser = (LoginUser) session.get(LOGIN_USER_KEY); SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); return loginUser; } @@ -82,7 +76,11 @@ * 鑾峰彇鐢ㄦ埛鍩轰簬token */ public static LoginUser getLoginUser(String token) { - return (LoginUser) StpUtil.getTokenSessionByToken(token).get(LOGIN_USER_KEY); + SaSession session = StpUtil.getTokenSessionByToken(token); + if (ObjectUtil.isNull(session)) { + return null; + } + return (LoginUser) session.get(LOGIN_USER_KEY); } /** @@ -137,8 +135,8 @@ * 鑾峰彇鐢ㄦ埛绫诲瀷 */ public static UserType getUserType() { - String loginId = StpUtil.getLoginIdAsString(); - return UserType.getUserType(loginId); + String loginType = StpUtil.getLoginIdAsString(); + return UserType.getUserType(loginType); } /** -- Gitblit v1.9.3