mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-04-05 17:37:53 +08:00
新增autoRenew
配置,用于控制是否打开自动续签模式
This commit is contained in:
parent
b211de69ca
commit
5dd02b3528
@ -57,7 +57,7 @@ sa-token是一个轻量级Java权限认证框架,主要解决:登录认证
|
||||
总的来说,与其它权限认证框架相比,你将会从以下方面感受到 `sa-token` 的优势:
|
||||
1. **简单** :可零配置启动框架,真正的开箱即用,低成本上手
|
||||
2. **强大** :目前已集成几十项权限相关特性,涵盖了大部分业务场景的解决方案
|
||||
3. **易用** :如丝版顺滑的API调用,大量高级特性统统只需一行代码即可实现
|
||||
3. **易用** :如丝般顺滑的API调用,大量高级特性统统只需一行代码即可实现
|
||||
4. **高扩展** :几乎所有组件都提供了扩展接口,90%以上的逻辑都可以按需重写
|
||||
|
||||
有了sa-token,你所有的权限认证问题,都不再是问题!
|
||||
|
@ -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 + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -73,11 +73,6 @@
|
||||
<version>5.5.4</version>
|
||||
</dependency> -->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.73</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
@ -247,6 +247,7 @@ public class TestController {
|
||||
public AjaxJson test() {
|
||||
// StpUtil.getTokenSession().logout();
|
||||
// StpUtil.logoutByLoginId(10001);
|
||||
StpUtil.getLoginId();
|
||||
return AjaxJson.getSuccess();
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
**<p align="center">
|
||||
<p align="center">
|
||||
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150">
|
||||
</p>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.12.1</h1>
|
||||
@ -45,7 +45,7 @@ sa-token是一个轻量级Java权限认证框架,主要解决:登录认证
|
||||
秉承着这个目的,`sa-token` 诞生了!
|
||||
|
||||
|
||||
## 架构设计
|
||||
## 框架优点?
|
||||
|
||||
在架构设计上,`sa-token`拒绝引入复杂的概念,以实际业务需求为第一目标,业务上需要什么,sa-token就做什么,
|
||||
例如:踢人下线、自动续签、同端互斥登录等常见业务,均可以在框架内**一行代码调用实现**,简单粗暴,拒绝复杂!
|
||||
@ -57,8 +57,8 @@ sa-token是一个轻量级Java权限认证框架,主要解决:登录认证
|
||||
总的来说,与其它权限认证框架相比,你将会从以下方面感受到 `sa-token` 的优势:
|
||||
1. **简单** :可零配置启动框架,真正的开箱即用,低成本上手
|
||||
2. **强大** :目前已集成几十项权限相关特性,涵盖了大部分业务场景的解决方案
|
||||
3. **易用** :同样的一个功能,在别的框架中可能需要上百行代码,在sa-token中统统一行代码解决
|
||||
4. **高扩展** :框架中几乎所有组件都提供了扩展接口,90%以上的逻辑都可以按需重写
|
||||
3. **易用** :如丝般顺滑的API调用,大量高级特性统统只需一行代码即可实现
|
||||
4. **高扩展** :几乎所有组件都提供了扩展接口,90%以上的逻辑都可以按需重写
|
||||
|
||||
有了sa-token,你所有的权限认证问题,都不再是问题!
|
||||
|
||||
@ -206,12 +206,10 @@ sa-token秉承着开放的思想,欢迎大家贡献代码,为框架添砖加
|
||||
## 交流群
|
||||
QQ交流群:[1002350610 点击加入](https://jq.qq.com/?_wv=1027&k=45H977HM)
|
||||
|
||||
|
||||

|
||||
|
||||
**微信群** :
|
||||
|
||||

|
||||

|
||||
|
||||
<br>
|
||||
**
|
||||
<br>
|
@ -38,6 +38,8 @@
|
||||
StpUtil.updateLastActivityToNow();
|
||||
```
|
||||
|
||||
同时,你还可以关闭框架的自动续签(在配置文件中配置 `autoRenew=false` ),此时续签操作完全由开发者控制,框架不再自动进行任何续签操作
|
||||
|
||||
|
||||
### timeout与activity-timeout可以同时使用吗?
|
||||
**可以同时使用!**
|
||||
|
@ -71,4 +71,5 @@ spring:
|
||||
| tokenStyle | String | uuid | token风格, [参考:花式token](/use/token-style) |
|
||||
| dataRefreshPeriod | int | 30 | 默认dao层实现类中,每次清理过期数据间隔的时间 (单位: 秒) ,默认值30秒,设置为-1代表不启动定时清理 |
|
||||
| tokenSessionCheckLogin | Boolean | true | 获取token专属session时是否必须登录 (如果配置为true,会在每次获取token专属session时校验是否登录) |
|
||||
| autoRenew | Boolean | true | 是否打开自动续签 (如果此值为true, 框架会在每次直接或间接调用getLoginId()时进行一次过期检查与续签操作) |
|
||||
| isV | Boolean | true | 是否在初始化配置时打印版本字符画 |
|
||||
|
Loading…
Reference in New Issue
Block a user