mirror of
https://gitee.com/dromara/sa-token.git
synced 2024-12-04 04:47:49 +08:00
v1.10.0 版本更新, 提供会话治理接口
This commit is contained in:
parent
2328f9d654
commit
f26424537f
@ -1,11 +1,11 @@
|
|||||||
<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" style="margin-bottom: 10px;">
|
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150" style="margin-bottom: 10px;">
|
||||||
</p>
|
</p>
|
||||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.9.0</h1>
|
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.10.0</h1>
|
||||||
<h4 align="center">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</h4>
|
<h4 align="center">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</h4>
|
||||||
<h4 align="center">
|
<h4 align="center">
|
||||||
<a href="https://gitee.com/sz6/sa-token/stargazers"><img src="https://gitee.com/sz6/sa-token/badge/star.svg"></a>
|
<a href="https://gitee.com/sz6/sa-token/stargazers"><img src="https://gitee.com/sz6/sa-token/badge/star.svg"></a>
|
||||||
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.9.0-2B9939"></a>
|
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.10.0-2B9939"></a>
|
||||||
<a href="https://github.com/click33/sa-token/stargazers"><img src="https://img.shields.io/github/stars/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/stargazers"><img src="https://img.shields.io/github/stars/click33/sa-token"></a>
|
||||||
<a href="https://github.com/click33/sa-token/watchers"><img src="https://img.shields.io/github/watchers/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/watchers"><img src="https://img.shields.io/github/watchers/click33/sa-token"></a>
|
||||||
<a href="https://github.com/click33/sa-token/network/members"><img src="https://img.shields.io/github/forks/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/network/members"><img src="https://img.shields.io/github/forks/click33/sa-token"></a>
|
||||||
|
2
pom.xml
2
pom.xml
@ -8,7 +8,7 @@
|
|||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-parent</artifactId>
|
<artifactId>sa-token-parent</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
|
|
||||||
<!-- 项目介绍 -->
|
<!-- 项目介绍 -->
|
||||||
<name>sa-token</name>
|
<name>sa-token</name>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-parent</artifactId>
|
<artifactId>sa-token-parent</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ public class SaTokenConsts {
|
|||||||
/**
|
/**
|
||||||
* sa-token 版本号
|
* sa-token 版本号
|
||||||
*/
|
*/
|
||||||
public static final String VERSION_NO = "v1.9.0";
|
public static final String VERSION_NO = "v1.10.0";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sa-token 开源地址
|
* sa-token 开源地址
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-parent</artifactId>
|
<artifactId>sa-token-parent</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
@ -20,7 +20,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- RedisTemplate 相关操作API -->
|
<!-- RedisTemplate 相关操作API -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -124,6 +124,17 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateTimeout(String key, long timeout) {
|
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);
|
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,6 +194,17 @@ public class SaTokenDaoRedisJackson implements SaTokenDao {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateSessionTimeout(String sessionId, long timeout) {
|
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);
|
sessionRedisTemplate.expire(sessionId, timeout, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-parent</artifactId>
|
<artifactId>sa-token-parent</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
@ -20,7 +20,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- RedisTemplate 相关操作API -->
|
<!-- RedisTemplate 相关操作API -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -105,6 +105,17 @@ public class SaTokenDaoRedis implements SaTokenDao {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateTimeout(String key, long timeout) {
|
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);
|
stringRedisTemplate.expire(key, timeout, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,6 +175,17 @@ public class SaTokenDaoRedis implements SaTokenDao {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void updateSessionTimeout(String sessionId, long timeout) {
|
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);
|
sessionRedisTemplate.expire(sessionId, timeout, TimeUnit.SECONDS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,21 +29,21 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- sa-token整合redis (使用jdk默认序列化方式) -->
|
<!-- sa-token整合redis (使用jdk默认序列化方式) -->
|
||||||
<!-- <dependency>
|
<!-- <dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-dao-redis</artifactId>
|
<artifactId>sa-token-dao-redis</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency> -->
|
</dependency> -->
|
||||||
|
|
||||||
<!-- sa-token整合redis (使用jackson序列化方式) -->
|
<!-- sa-token整合redis (使用jackson序列化方式) -->
|
||||||
<!-- <dependency>
|
<!-- <dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency> -->
|
</dependency> -->
|
||||||
|
|
||||||
<!-- 提供redis连接池 -->
|
<!-- 提供redis连接池 -->
|
||||||
|
@ -27,13 +27,17 @@ public class StressTestController {
|
|||||||
public AjaxJson login() {
|
public AjaxJson login() {
|
||||||
// StpUtil.getTokenSession().logout();
|
// StpUtil.getTokenSession().logout();
|
||||||
// StpUtil.logoutByLoginId(10001);
|
// StpUtil.logoutByLoginId(10001);
|
||||||
|
|
||||||
|
int count = 10; // 循环多少轮
|
||||||
|
int loginCount = 10000; // 每轮循环多少次
|
||||||
|
|
||||||
// 循环10次 取平均时间
|
// 循环10次 取平均时间
|
||||||
List<Double> list = new ArrayList<>();
|
List<Double> list = new ArrayList<>();
|
||||||
for (int i = 10; i <= 1; i++) {
|
for (int i = 1; i <= count; i++) {
|
||||||
System.out.println("\n---------------------第" + i + "轮---------------------");
|
System.out.println("\n---------------------第" + i + "轮---------------------");
|
||||||
Ttime t = new Ttime().start();
|
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);
|
StpUtil.setLoginId("1000" + j, "PC-" + j);
|
||||||
if(j % 1000 == 0) {
|
if(j % 1000 == 0) {
|
||||||
System.out.println("已登录:" + j);
|
System.out.println("已登录:" + j);
|
||||||
|
@ -203,13 +203,12 @@ public class TestController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 测试 浏览器访问: http://localhost:8081/test/searchSession
|
// 测试会话治理 浏览器访问: http://localhost:8081/test/search
|
||||||
// 测试前,请先将 is-read-cookie 配置为 false
|
@RequestMapping("search")
|
||||||
@RequestMapping("searchSession")
|
public AjaxJson search() {
|
||||||
public AjaxJson searchSession() {
|
|
||||||
System.out.println("--------------");
|
System.out.println("--------------");
|
||||||
Ttime t = new Ttime().start();
|
Ttime t = new Ttime().start();
|
||||||
List<String> tokenValue = StpUtil.searchTokenValue("", 0, 10);
|
List<String> tokenValue = StpUtil.searchTokenValue("8feb8265f773", 0, 10);
|
||||||
for (String v : tokenValue) {
|
for (String v : tokenValue) {
|
||||||
// SaSession session = StpUtil.getSessionBySessionId(sid);
|
// SaSession session = StpUtil.getSessionBySessionId(sid);
|
||||||
System.out.println(v);
|
System.out.println(v);
|
||||||
|
@ -8,7 +8,7 @@ spring:
|
|||||||
# token名称 (同时也是cookie名称)
|
# token名称 (同时也是cookie名称)
|
||||||
token-name: satoken
|
token-name: satoken
|
||||||
# token有效期,单位s 默认30天, -1代表永不过期
|
# token有效期,单位s 默认30天, -1代表永不过期
|
||||||
timeout: 2592000
|
timeout: -1
|
||||||
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||||
activity-timeout: -1
|
activity-timeout: -1
|
||||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||||
@ -18,8 +18,6 @@ spring:
|
|||||||
# token风格
|
# token风格
|
||||||
token-style: uuid
|
token-style: uuid
|
||||||
|
|
||||||
# 是否从cookie里读取token
|
|
||||||
# is-read-cookie: false
|
|
||||||
|
|
||||||
|
|
||||||
# redis配置
|
# redis配置
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<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" style="margin-bottom: 10px;">
|
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150" style="margin-bottom: 10px;">
|
||||||
</p>
|
</p>
|
||||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.9.0</h1>
|
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.10.0</h1>
|
||||||
<h4 align="center">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</h4>
|
<h4 align="center">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</h4>
|
||||||
<h4 align="center">
|
<h4 align="center">
|
||||||
<a href="https://gitee.com/sz6/sa-token/stargazers"><img src="https://gitee.com/sz6/sa-token/badge/star.svg"></a>
|
<a href="https://gitee.com/sz6/sa-token/stargazers"><img src="https://gitee.com/sz6/sa-token/badge/star.svg"></a>
|
||||||
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.9.0-2B9939"></a>
|
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.10.0-2B9939"></a>
|
||||||
<a href="https://github.com/click33/sa-token/stargazers"><img src="https://img.shields.io/github/stars/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/stargazers"><img src="https://img.shields.io/github/stars/click33/sa-token"></a>
|
||||||
<a href="https://github.com/click33/sa-token/watchers"><img src="https://img.shields.io/github/watchers/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/watchers"><img src="https://img.shields.io/github/watchers/click33/sa-token"></a>
|
||||||
<a href="https://github.com/click33/sa-token/network/members"><img src="https://img.shields.io/github/forks/click33/sa-token"></a>
|
<a href="https://github.com/click33/sa-token/network/members"><img src="https://img.shields.io/github/forks/click33/sa-token"></a>
|
||||||
@ -77,7 +77,7 @@ sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳
|
|||||||
|
|
||||||
## 涵盖功能
|
## 涵盖功能
|
||||||
- **登录验证** —— 轻松登录鉴权,并提供五种细分场景值
|
- **登录验证** —— 轻松登录鉴权,并提供五种细分场景值
|
||||||
- **权限验证** —— 拦截违规调用,不同角色不同授权
|
- **权限验证** —— 适配RBAC模型,不同角色不同授权
|
||||||
- **Session会话** —— 专业的数据缓存中心
|
- **Session会话** —— 专业的数据缓存中心
|
||||||
- **踢人下线** —— 将违规用户立刻清退下线
|
- **踢人下线** —— 将违规用户立刻清退下线
|
||||||
- **模拟他人账号** —— 实时操作任意用户状态数据
|
- **模拟他人账号** —— 实时操作任意用户状态数据
|
||||||
@ -89,6 +89,7 @@ sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳
|
|||||||
- **自动续签** —— 提供两种token过期策略,灵活搭配使用,还可自动续签
|
- **自动续签** —— 提供两种token过期策略,灵活搭配使用,还可自动续签
|
||||||
- **同端互斥登录** —— 像QQ一样手机电脑同时在线,但是两个手机上互斥登录
|
- **同端互斥登录** —— 像QQ一样手机电脑同时在线,但是两个手机上互斥登录
|
||||||
- **组件自动注入** —— 零配置与Spring等框架集成
|
- **组件自动注入** —— 零配置与Spring等框架集成
|
||||||
|
- **会话治理** —— 提供方便灵活的会话查询接口
|
||||||
- **更多功能正在集成中...** —— 如有您有好想法或者建议,欢迎加群交流
|
- **更多功能正在集成中...** —— 如有您有好想法或者建议,欢迎加群交流
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<meta name="description" content="Description">
|
<meta name="description" content="Description">
|
||||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
<meta name="keywords" content="sa-token|sa-token框架|sa-token文档|sa-token在线文档|权限认证框架">
|
<meta name="keywords" content="sa-token|sa-token框架|sa-token文档|sa-token在线文档|权限认证框架">
|
||||||
<meta name="description" content="sa-token是一个JavaWeb权限认证框架,功能全面,上手简单,登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、Spring集成...,零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有">
|
<meta name="description" content="sa-token是一个JavaWeb权限认证框架,功能全面,上手简单,登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、会话治理、Spring集成...,零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有">
|
||||||
<link rel="stylesheet" href="https://unpkg.zhimg.com/docsify@4.11.3/lib/themes/vue.css">
|
<link rel="stylesheet" href="https://unpkg.zhimg.com/docsify@4.11.3/lib/themes/vue.css">
|
||||||
<link rel="stylesheet" href="./lib/index.css">
|
<link rel="stylesheet" href="./lib/index.css">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="logo.png">
|
<link rel="shortcut icon" type="image/x-icon" href="logo.png">
|
||||||
@ -38,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
var name = '<img style="width: 50px; height: 50px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
|
var name = '<img style="width: 50px; height: 50px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
|
||||||
name += '<b style="font-size: 24px; vertical-align: middle;">sa-token</b> <sub>v1.9.0</sub>'
|
name += '<b style="font-size: 24px; vertical-align: middle;">sa-token</b> <sub>v1.10.0</sub>'
|
||||||
window.$docsify = {
|
window.$docsify = {
|
||||||
name: name, // 名字
|
name: name, // 名字
|
||||||
repo: 'https://github.com/click33/sa-token', // github地址
|
repo: 'https://github.com/click33/sa-token', // github地址
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
# 更新日志
|
# 更新日志
|
||||||
|
|
||||||
|
|
||||||
|
### 2021-1-6 @v1.10.0
|
||||||
|
- 新增:提供查询所有会话方案 **[重要]**
|
||||||
|
- 修复:修复token设置为永不过期时无法正常被顶下线的bug,感谢github用户 @zjh599245299 提出的bug
|
||||||
|
|
||||||
|
|
||||||
### 2021-1-6 @v1.9.0
|
### 2021-1-6 @v1.9.0
|
||||||
- 优化:`spring-boot-starter-data-redis` 由 `2.3.7.RELEASE` 改为 `2.3.3.RELEASE`
|
- 优化:`spring-boot-starter-data-redis` 由 `2.3.7.RELEASE` 改为 `2.3.3.RELEASE`
|
||||||
- 修复:补上注解拦截器里漏掉验证`@SaCheckRole`的bug
|
- 修复:补上注解拦截器里漏掉验证`@SaCheckRole`的bug
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-dao-redis</artifactId>
|
<artifactId>sa-token-dao-redis</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
优点:兼容性好,缺点:session序列化后基本不可读,对开发者来讲等同于乱码
|
优点:兼容性好,缺点:session序列化后基本不可读,对开发者来讲等同于乱码
|
||||||
@ -23,7 +23,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
优点:session序列化后可读性强,可灵活手动修改,缺点:兼容性稍差
|
优点:session序列化后可读性强,可灵活手动修改,缺点:兼容性稍差
|
||||||
|
@ -14,6 +14,7 @@ StpUtil.getSession(); // 获取当前账号id的Session (
|
|||||||
StpUtil.getSession(true); // 获取当前账号id的Session, 并决定在Session尚未创建时,是否新建并返回
|
StpUtil.getSession(true); // 获取当前账号id的Session, 并决定在Session尚未创建时,是否新建并返回
|
||||||
StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
|
StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
|
||||||
StpUtil.getSessionByLoginId(10001, true); // 获取账号id为10001的Session, 并决定在Session尚未创建时,是否新建并返回
|
StpUtil.getSessionByLoginId(10001, true); // 获取账号id为10001的Session, 并决定在Session尚未创建时,是否新建并返回
|
||||||
|
StpUtil.getSessionBySessionId("xxxx-xxxx"); // 获取SessionId为xxxx-xxxx的Session, 在Session尚未创建时, 返回null
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<meta name="description" content="Description">
|
<meta name="description" content="Description">
|
||||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
<meta name="keywords" content="sa-token|sa-token框架|sa-token文档|sa-token在线文档|权限认证框架">
|
<meta name="keywords" content="sa-token|sa-token框架|sa-token文档|sa-token在线文档|权限认证框架">
|
||||||
<meta name="description" content="sa-token是一个JavaWeb权限认证框架,功能全面,上手简单,登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、Spring集成...,零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有">
|
<meta name="description" content="sa-token是一个JavaWeb权限认证框架,功能全面,上手简单,登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、会话治理、Spring集成...,零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有">
|
||||||
<link rel="stylesheet" href="https://unpkg.zhimg.com/docsify@4.11.3/lib/themes/vue.css">
|
<link rel="stylesheet" href="https://unpkg.zhimg.com/docsify@4.11.3/lib/themes/vue.css">
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="doc/logo.png">
|
<link rel="shortcut icon" type="image/x-icon" href="doc/logo.png">
|
||||||
<link rel="stylesheet" href="index.css">
|
<link rel="stylesheet" href="index.css">
|
||||||
@ -43,10 +43,10 @@
|
|||||||
<!-- 内容部分 -->
|
<!-- 内容部分 -->
|
||||||
<div class="main-box">
|
<div class="main-box">
|
||||||
<div class="content-box">
|
<div class="content-box">
|
||||||
<h1>sa-token<small>v1.9.0</small></h1>
|
<h1>sa-token<small>v1.10.0</small></h1>
|
||||||
<div class="sub-title">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</div>
|
<div class="sub-title">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</div>
|
||||||
<!-- <p>0配置开箱即用,低学习成本</p> -->
|
<!-- <p>0配置开箱即用,低学习成本</p> -->
|
||||||
<p>登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、Spring集成...</p>
|
<p>登录验证、权限验证、Session会话、踢人下线、集成Redis、前后台分离、模拟他人账号、多账号体系、注解式鉴权、花式token、自动续签、同端互斥登录、会话治理、Spring集成...</p>
|
||||||
<p>零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有</p>
|
<p>零配置开箱即用,覆盖所有应用场景,你所需要的功能,这里都有</p>
|
||||||
<div class="btn-box">
|
<div class="btn-box">
|
||||||
<a href="https://github.com/click33/sa-token" target="_blank">GitHub</a>
|
<a href="https://github.com/click33/sa-token" target="_blank">GitHub</a>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-parent</artifactId>
|
<artifactId>sa-token-parent</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
@ -19,7 +19,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.dev33</groupId>
|
<groupId>cn.dev33</groupId>
|
||||||
<artifactId>sa-token-core</artifactId>
|
<artifactId>sa-token-core</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.10.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
Loading…
Reference in New Issue
Block a user