新增autoRenew配置,用于控制是否打开自动续签模式

This commit is contained in:
shengzhang
2021-02-04 21:54:54 +08:00
parent b211de69ca
commit 5dd02b3528
8 changed files with 44 additions and 19 deletions

View File

@@ -46,9 +46,14 @@ public class SaTokenConfig {
/** 获取[token专属session]时是否必须登录 (如果配置为true会在每次获取[token-session]时校验是否登录) */
private Boolean tokenSessionCheckLogin = true;
/** 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作) */
private Boolean autoRenew = true;
/** 是否在初始化配置时打印版本字符画 */
private Boolean isV = true;
/**
* @return token名称 (同时也是cookie名称)
*/
@@ -207,6 +212,20 @@ public class SaTokenConfig {
this.tokenSessionCheckLogin = tokenSessionCheckLogin;
}
/**
* @return 是否打开了自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作)
*/
public Boolean getAutoRenew() {
return autoRenew;
}
/**
* @param autoRenew 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作)
*/
public void setAutoRenew(Boolean autoRenew) {
this.autoRenew = autoRenew;
}
/**
* @return 是否在初始化配置时打印版本字符画
*/
@@ -221,13 +240,20 @@ public class SaTokenConfig {
this.isV = isV;
}
/**
* toString
*/
@Override
public String toString() {
return "SaTokenConfig [tokenName=" + tokenName + ", timeout=" + timeout + ", activityTimeout=" + activityTimeout
+ ", allowConcurrentLogin=" + allowConcurrentLogin + ", isShare=" + isShare + ", isReadBody="
+ isReadBody + ", isReadHead=" + isReadHead + ", isReadCookie=" + isReadCookie + ", tokenStyle="
+ tokenStyle + ", dataRefreshPeriod=" + dataRefreshPeriod + ", tokenSessionCheckLogin="
+ tokenSessionCheckLogin + ", isV=" + isV + "]";
+ tokenSessionCheckLogin + ", autoRenew=" + autoRenew + ", isV=" + isV + "]";
}
}

View File

@@ -345,9 +345,11 @@ public class StpLogic {
if(loginId.equals(NotLoginException.KICK_OUT)) {
throw NotLoginException.newInstance(loginKey, NotLoginException.KICK_OUT);
}
// 检查是否已经 [临时过期],同时更新[最后操作时间]
checkActivityTimeout(tokenValue);
updateLastActivityToNow(tokenValue);
// 如果配置了自动续签, 则: 检查是否已经 [临时过期],同时更新[最后操作时间]
if(getConfig().getAutoRenew()) {
checkActivityTimeout(tokenValue);
updateLastActivityToNow(tokenValue);
}
// 至此返回loginId
return loginId;
}
@@ -961,7 +963,7 @@ public class StpLogic {
return null;
}
// 如果session为null的话直接返回 null
SaSession session = getSession(false);
SaSession session = getSessionByLoginId(getLoginIdDefaultNull(), false);
if(session == null) {
return null;
}