From f26424537fe6a3c7c5f5507971aafd48d07944ad Mon Sep 17 00:00:00 2001
From: shengzhang <2393584716@qq.com>
Date: Sat, 9 Jan 2021 01:24:37 +0800
Subject: [PATCH] =?UTF-8?q?v1.10.0=20=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?=
=?UTF-8?q?=EF=BC=8C=20=E6=8F=90=E4=BE=9B=E4=BC=9A=E8=AF=9D=E6=B2=BB?=
=?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 4 ++--
pom.xml | 2 +-
sa-token-core/pom.xml | 2 +-
.../cn/dev33/satoken/util/SaTokenConsts.java | 2 +-
sa-token-dao-redis-jackson/pom.xml | 4 ++--
.../satoken/dao/SaTokenDaoRedisJackson.java | 22 +++++++++++++++++++
sa-token-dao-redis/pom.xml | 4 ++--
.../cn/dev33/satoken/dao/SaTokenDaoRedis.java | 22 +++++++++++++++++++
sa-token-demo-springboot/pom.xml | 6 ++---
.../com/pj/test/StressTestController.java | 8 +++++--
.../main/java/com/pj/test/TestController.java | 9 ++++----
.../src/main/resources/application.yml | 4 +---
sa-token-doc/doc/README.md | 7 +++---
sa-token-doc/doc/index.html | 4 ++--
sa-token-doc/doc/more/update-log.md | 6 +++++
sa-token-doc/doc/start/download.md | 2 +-
sa-token-doc/doc/start/example.md | 2 +-
sa-token-doc/doc/use/dao-extend.md | 4 ++--
sa-token-doc/doc/use/session.md | 1 +
sa-token-doc/index.html | 6 ++---
sa-token-spring-boot-starter/pom.xml | 4 ++--
21 files changed, 89 insertions(+), 36 deletions(-)
diff --git a/README.md b/README.md
index e9e8a1dd..e8b4f245 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
-sa-token v1.9.0
+sa-token v1.10.0
一个JavaWeb轻量级权限认证框架,功能全面,上手简单
-
+
diff --git a/pom.xml b/pom.xml
index 1e595910..00a80521 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@
cn.dev33
sa-token-parent
pom
- 1.9.0
+ 1.10.0
sa-token
diff --git a/sa-token-core/pom.xml b/sa-token-core/pom.xml
index ad96cd6f..ffc52764 100644
--- a/sa-token-core/pom.xml
+++ b/sa-token-core/pom.xml
@@ -7,7 +7,7 @@
cn.dev33
sa-token-parent
- 1.9.0
+ 1.10.0
jar
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java
index a5704f65..dd8dff47 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java
@@ -10,7 +10,7 @@ public class SaTokenConsts {
/**
* sa-token 版本号
*/
- public static final String VERSION_NO = "v1.9.0";
+ public static final String VERSION_NO = "v1.10.0";
/**
* sa-token 开源地址
diff --git a/sa-token-dao-redis-jackson/pom.xml b/sa-token-dao-redis-jackson/pom.xml
index 5adde229..6fdfecd5 100644
--- a/sa-token-dao-redis-jackson/pom.xml
+++ b/sa-token-dao-redis-jackson/pom.xml
@@ -7,7 +7,7 @@
cn.dev33
sa-token-parent
- 1.9.0
+ 1.10.0
jar
@@ -20,7 +20,7 @@
cn.dev33
sa-token-spring-boot-starter
- 1.9.0
+ 1.10.0
diff --git a/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java b/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
index 7292c40a..4ce74064 100644
--- a/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
+++ b/sa-token-dao-redis-jackson/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedisJackson.java
@@ -124,6 +124,17 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
*/
@Override
public void updateTimeout(String key, long timeout) {
+ // 判断是否想要设置为永久
+ if(timeout == SaTokenDao.NEVER_EXPIRE) {
+ long expire = getTimeout(key);
+ if(expire == SaTokenDao.NEVER_EXPIRE) {
+ // 如果其已经被设置为永久,则不作任何处理
+ } else {
+ // 如果尚未被设置为永久,那么再次set一次
+ this.setValue(key, this.getValue(key), timeout);
+ }
+ return;
+ }
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
@@ -183,6 +194,17 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
*/
@Override
public void updateSessionTimeout(String sessionId, long timeout) {
+ // 判断是否想要设置为永久
+ if(timeout == SaTokenDao.NEVER_EXPIRE) {
+ long expire = getSessionTimeout(sessionId);
+ if(expire == SaTokenDao.NEVER_EXPIRE) {
+ // 如果其已经被设置为永久,则不作任何处理
+ } else {
+ // 如果尚未被设置为永久,那么再次set一次
+ this.saveSession(this.getSession(sessionId), timeout);
+ }
+ return;
+ }
sessionRedisTemplate.expire(sessionId, timeout, TimeUnit.SECONDS);
}
diff --git a/sa-token-dao-redis/pom.xml b/sa-token-dao-redis/pom.xml
index 9d5f072b..0cddcdcd 100644
--- a/sa-token-dao-redis/pom.xml
+++ b/sa-token-dao-redis/pom.xml
@@ -7,7 +7,7 @@
cn.dev33
sa-token-parent
- 1.9.0
+ 1.10.0
jar
@@ -20,7 +20,7 @@
cn.dev33
sa-token-spring-boot-starter
- 1.9.0
+ 1.10.0
diff --git a/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java b/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
index 266d0c96..35e6ae18 100644
--- a/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
+++ b/sa-token-dao-redis/src/main/java/cn/dev33/satoken/dao/SaTokenDaoRedis.java
@@ -105,6 +105,17 @@ public class SaTokenDaoRedis implements SaTokenDao {
*/
@Override
public void updateTimeout(String key, long timeout) {
+ // 判断是否想要设置为永久
+ if(timeout == SaTokenDao.NEVER_EXPIRE) {
+ long expire = getTimeout(key);
+ if(expire == SaTokenDao.NEVER_EXPIRE) {
+ // 如果其已经被设置为永久,则不作任何处理
+ } else {
+ // 如果尚未被设置为永久,那么再次set一次
+ this.setValue(key, this.getValue(key), timeout);
+ }
+ return;
+ }
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
}
@@ -164,6 +175,17 @@ public class SaTokenDaoRedis implements SaTokenDao {
*/
@Override
public void updateSessionTimeout(String sessionId, long timeout) {
+ // 判断是否想要设置为永久
+ if(timeout == SaTokenDao.NEVER_EXPIRE) {
+ long expire = getSessionTimeout(sessionId);
+ if(expire == SaTokenDao.NEVER_EXPIRE) {
+ // 如果其已经被设置为永久,则不作任何处理
+ } else {
+ // 如果尚未被设置为永久,那么再次set一次
+ this.saveSession(this.getSession(sessionId), timeout);
+ }
+ return;
+ }
sessionRedisTemplate.expire(sessionId, timeout, TimeUnit.SECONDS);
}
diff --git a/sa-token-demo-springboot/pom.xml b/sa-token-demo-springboot/pom.xml
index 09bb81d1..2841c58e 100644
--- a/sa-token-demo-springboot/pom.xml
+++ b/sa-token-demo-springboot/pom.xml
@@ -29,21 +29,21 @@
cn.dev33
sa-token-spring-boot-starter
- 1.9.0
+ 1.10.0
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java b/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
index 640d65dd..f0151e16 100644
--- a/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
+++ b/sa-token-demo-springboot/src/main/java/com/pj/test/StressTestController.java
@@ -27,13 +27,17 @@ public class StressTestController {
public AjaxJson login() {
// StpUtil.getTokenSession().logout();
// StpUtil.logoutByLoginId(10001);
+
+ int count = 10; // 循环多少轮
+ int loginCount = 10000; // 每轮循环多少次
+
// 循环10次 取平均时间
List list = new ArrayList<>();
- for (int i = 10; i <= 1; i++) {
+ for (int i = 1; i <= count; i++) {
System.out.println("\n---------------------第" + i + "轮---------------------");
Ttime t = new Ttime().start();
// 每次登录的次数
- for (int j = 1; j <= 10000; j++) {
+ for (int j = 1; j <= loginCount; j++) {
StpUtil.setLoginId("1000" + j, "PC-" + j);
if(j % 1000 == 0) {
System.out.println("已登录:" + j);
diff --git a/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java b/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
index 7e3896d2..bb3aceef 100644
--- a/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
+++ b/sa-token-demo-springboot/src/main/java/com/pj/test/TestController.java
@@ -203,13 +203,12 @@ public class TestController {
}
- // 测试 浏览器访问: http://localhost:8081/test/searchSession
- // 测试前,请先将 is-read-cookie 配置为 false
- @RequestMapping("searchSession")
- public AjaxJson searchSession() {
+ // 测试会话治理 浏览器访问: http://localhost:8081/test/search
+ @RequestMapping("search")
+ public AjaxJson search() {
System.out.println("--------------");
Ttime t = new Ttime().start();
- List tokenValue = StpUtil.searchTokenValue("", 0, 10);
+ List tokenValue = StpUtil.searchTokenValue("8feb8265f773", 0, 10);
for (String v : tokenValue) {
// SaSession session = StpUtil.getSessionBySessionId(sid);
System.out.println(v);
diff --git a/sa-token-demo-springboot/src/main/resources/application.yml b/sa-token-demo-springboot/src/main/resources/application.yml
index 57c1bcd0..6aebe709 100644
--- a/sa-token-demo-springboot/src/main/resources/application.yml
+++ b/sa-token-demo-springboot/src/main/resources/application.yml
@@ -8,7 +8,7 @@ spring:
# token名称 (同时也是cookie名称)
token-name: satoken
# token有效期,单位s 默认30天, -1代表永不过期
- timeout: 2592000
+ timeout: -1
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
@@ -18,8 +18,6 @@ spring:
# token风格
token-style: uuid
- # 是否从cookie里读取token
- # is-read-cookie: false
# redis配置
diff --git a/sa-token-doc/doc/README.md b/sa-token-doc/doc/README.md
index e9e8a1dd..41f6977a 100644
--- a/sa-token-doc/doc/README.md
+++ b/sa-token-doc/doc/README.md
@@ -1,11 +1,11 @@
-sa-token v1.9.0
+sa-token v1.10.0
一个JavaWeb轻量级权限认证框架,功能全面,上手简单
-
+
@@ -77,7 +77,7 @@ sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳
## 涵盖功能
- **登录验证** —— 轻松登录鉴权,并提供五种细分场景值
-- **权限验证** —— 拦截违规调用,不同角色不同授权
+- **权限验证** —— 适配RBAC模型,不同角色不同授权
- **Session会话** —— 专业的数据缓存中心
- **踢人下线** —— 将违规用户立刻清退下线
- **模拟他人账号** —— 实时操作任意用户状态数据
@@ -89,6 +89,7 @@ sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳
- **自动续签** —— 提供两种token过期策略,灵活搭配使用,还可自动续签
- **同端互斥登录** —— 像QQ一样手机电脑同时在线,但是两个手机上互斥登录
- **组件自动注入** —— 零配置与Spring等框架集成
+- **会话治理** —— 提供方便灵活的会话查询接口
- **更多功能正在集成中...** —— 如有您有好想法或者建议,欢迎加群交流
diff --git a/sa-token-doc/doc/index.html b/sa-token-doc/doc/index.html
index 4dbf9360..4a3ae850 100644
--- a/sa-token-doc/doc/index.html
+++ b/sa-token-doc/doc/index.html
@@ -7,7 +7,7 @@
-
+
@@ -38,7 +38,7 @@