From b5908c8ac0d3d649199cad015602a534f81fcf84 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Tue, 10 Dec 2024 18:54:26 +0800 Subject: [PATCH] =?UTF-8?q?chore(core):=20=E5=8E=BB=E9=99=A4=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=B5=81=E7=A8=8B=E4=B8=AD=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E5=86=97=E4=BD=99=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/dev33/satoken/stp/SaLoginModel.java | 61 ++++++++++--------- .../java/cn/dev33/satoken/stp/StpLogic.java | 6 +- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java index db019fed..f65d5e3d 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/SaLoginModel.java @@ -15,14 +15,14 @@ */ package cn.dev33.satoken.stp; -import java.util.LinkedHashMap; -import java.util.Map; - import cn.dev33.satoken.SaManager; import cn.dev33.satoken.config.SaTokenConfig; import cn.dev33.satoken.dao.SaTokenDao; import cn.dev33.satoken.util.SaTokenConsts; +import java.util.LinkedHashMap; +import java.util.Map; + /** * 在调用 `StpUtil.login()` 时的 配置参数 Model,决定登录的一些细节行为
* @@ -236,26 +236,6 @@ public class SaLoginModel { return isLastingCookie; } - /** - * @return timeout 值 (如果此配置项尚未配置,则取全局配置的值) - */ - public Long getTimeoutOrGlobalConfig() { - if(timeout == null) { - timeout = SaManager.getConfig().getTimeout(); - } - return timeout; - } - - /** - * @return 是否在登录后将 Token 写入到响应头 (如果此配置项尚未配置,则取全局配置的值) - */ - public Boolean getIsWriteHeaderOrGlobalConfig() { - if(isWriteHeader == null) { - isWriteHeader = SaManager.getConfig().getIsWriteHeader(); - } - return isWriteHeader; - } - /** * 写入扩展数据(只在jwt模式下生效) * @param key 键 @@ -297,13 +277,11 @@ public class SaLoginModel { if( ! getIsLastingCookieOrFalse()) { return -1; } - if(getTimeoutOrGlobalConfig() == SaTokenDao.NEVER_EXPIRE) { + long _timeout = getTimeout(); + if(_timeout == SaTokenDao.NEVER_EXPIRE || _timeout > Integer.MAX_VALUE) { return Integer.MAX_VALUE; } - if (timeout > Integer.MAX_VALUE) { - return Integer.MAX_VALUE; - } - return (int)(long)timeout; + return (int)_timeout; } /** @@ -353,4 +331,31 @@ public class SaLoginModel { return new SaLoginModel(); } + + // ---------------- 过期方法 + + /** + * 请改为 getTimeout + * @return timeout 值 (如果此配置项尚未配置,则取全局配置的值) + */ + @Deprecated + public Long getTimeoutOrGlobalConfig() { + if(timeout == null) { + timeout = SaManager.getConfig().getTimeout(); + } + return timeout; + } + + /** + * 请改为 getIsWriteHeader + * @return 是否在登录后将 Token 写入到响应头 (如果此配置项尚未配置,则取全局配置的值) + */ + @Deprecated + public Boolean getIsWriteHeaderOrGlobalConfig() { + if(isWriteHeader == null) { + isWriteHeader = SaManager.getConfig().getIsWriteHeader(); + } + return isWriteHeader; + } + } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java index 0ea61b51..280376fd 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java @@ -203,7 +203,7 @@ public class StpLogic { } // 3. 将 token 写入到当前请求的响应头中 - if(loginModel.getIsWriteHeaderOrGlobalConfig()) { + if(loginModel.getIsWriteHeader()) { setTokenValueToResponseHeader(tokenValue); } } @@ -471,7 +471,7 @@ public class StpLogic { String tokenValue = distUsableToken(id, loginModel); // 4、获取此账号的 Account-Session , 续期 - SaSession session = getSessionByLoginId(id, true, loginModel.getTimeoutOrGlobalConfig()); + SaSession session = getSessionByLoginId(id, true, loginModel.getTimeout()); session.updateMinTimeout(loginModel.getTimeout()); // 5、在 Account-Session 上记录本次登录的 token 签名 @@ -483,7 +483,7 @@ public class StpLogic { // 7、写入这个 token 的最后活跃时间 token-last-active if(isOpenCheckActiveTimeout()) { - setLastActiveToNow(tokenValue, loginModel.getActiveTimeout(), loginModel.getTimeoutOrGlobalConfig()); + setLastActiveToNow(tokenValue, loginModel.getActiveTimeout(), loginModel.getTimeout()); } // 8、如果该 token 对应的 Token-Session 已经存在,则需要给其续期