From be499e011bc7e6657a411767ea8a4ece27c2bf6c Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Mon, 9 May 2022 19:05:46 +0800
Subject: [PATCH] v.1.30.0 release
---
README.md | 75 +--------
pom.xml | 2 +-
.../dev33/satoken/action/SaTokenAction.java | 54 -------
.../action/SaTokenActionDefaultImpl.java | 150 ------------------
.../cn/dev33/satoken/util/SaTokenConsts.java | 2 +-
.../sa-token-demo-alone-redis/pom.xml | 2 +-
.../sa-token-demo-dubbo-consumer/pom.xml | 2 +-
.../sa-token-demo-dubbo-provider/pom.xml | 2 +-
sa-token-demo/sa-token-demo-jwt/pom.xml | 2 +-
.../sa-token-demo-oauth2-client/pom.xml | 2 +-
.../sa-token-demo-oauth2-server/pom.xml | 2 +-
.../sa-token-demo-quick-login/pom.xml | 2 +-
sa-token-demo/sa-token-demo-solon/pom.xml | 2 +-
.../sa-token-demo-springboot-redis/pom.xml | 2 +-
.../main/java/com/pj/MySaTokenListener.java | 62 --------
.../sa-token-demo-springboot/pom.xml | 2 +-
.../sa-token-demo-sso-server/pom.xml | 2 +-
.../sa-token-demo-sso1-client/pom.xml | 2 +-
.../sa-token-demo-sso2-client/pom.xml | 2 +-
.../sa-token-demo-sso3-client/pom.xml | 2 +-
sa-token-demo/sa-token-demo-thymeleaf/pom.xml | 2 +-
sa-token-demo/sa-token-demo-webflux/pom.xml | 2 +-
.../sa-token-demo-websocket-spring/pom.xml | 2 +-
sa-token-demo/sa-token-demo-websocket/pom.xml | 2 +-
sa-token-doc/doc/README.md | 15 +-
sa-token-doc/doc/index.html | 4 +-
sa-token-doc/doc/more/update-log.md | 2 +-
sa-token-doc/index.html | 4 +-
28 files changed, 28 insertions(+), 378 deletions(-)
delete mode 100644 sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java
delete mode 100644 sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
delete mode 100644 sa-token-demo/sa-token-demo-springboot-redis/src/main/java/com/pj/MySaTokenListener.java
diff --git a/README.md b/README.md
index fb64fd58..be65b772 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-Sa-Token v1.30.0.RC
+Sa-Token v1.30.0
一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!
@@ -28,64 +28,6 @@
**Sa-Token** 是一个轻量级 Java 权限认证框架,主要解决:**`登录认证`**、**`权限认证`**、**`Session会话`**、**`单点登录`**、**`OAuth2.0`**、**`微服务网关鉴权`**
等一系列权限相关问题。
-Sa-Token 的 API 设计非常简单,有多简单呢?以登录认证为例,你只需要:
-
-``` java
-// 在登录时写入当前会话的账号id
-StpUtil.login(10001);
-
-// 然后在需要校验登录处调用以下方法:
-// 如果当前会话未登录,这句代码会抛出 `NotLoginException` 异常
-StpUtil.checkLogin();
-```
-
-至此,我们已经借助 Sa-Token 完成登录认证!
-
-此时的你小脑袋可能飘满了问号,就这么简单?自定义 Realm 呢?全局过滤器呢?我不用写各种配置文件吗?
-
-没错,在 Sa-Token 中,登录认证就是如此简单,不需要任何的复杂前置工作,只需这一行简单的API调用,就可以完成会话登录认证!
-
-当你受够 Shiro、SpringSecurity 等框架的三拜九叩之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!
-
-权限认证示例(只有具备 `user:add` 权限的会话才可以进入请求)
-``` java
-@SaCheckPermission("user:add")
-@RequestMapping("/user/insert")
-public String insert(SysUser user) {
- // ...
- return "用户增加";
-}
-```
-
-将某个账号踢下线(待到对方再次访问系统时会抛出`NotLoginException`异常)
-``` java
-// 将账号id为 10001 的会话踢下线
-StpUtil.kickout(10001);
-```
-
-在 Sa-Token 中,绝大多数功能都可以 **一行代码** 完成:
-``` java
-StpUtil.login(10001); // 标记当前会话登录的账号id
-StpUtil.getLoginId(); // 获取当前会话登录的账号id
-StpUtil.isLogin(); // 获取当前会话是否已经登录, 返回true或false
-StpUtil.logout(); // 当前会话注销登录
-StpUtil.kickout(10001); // 将账号为10001的会话踢下线
-StpUtil.hasRole("super-admin"); // 查询当前账号是否含有指定角色标识, 返回true或false
-StpUtil.hasPermission("user:add"); // 查询当前账号是否含有指定权限, 返回true或false
-StpUtil.getSession(); // 获取当前账号id的Session
-StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session
-StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值
-StpUtil.login(10001, "PC"); // 指定设备类型登录,常用于“同端互斥登录”
-StpUtil.kickout(10001, "PC"); // 指定账号指定设备类型踢下线 (不同端不受影响)
-StpUtil.openSafe(120); // 在当前会话开启二级认证,有效期为120秒
-StpUtil.checkSafe(); // 校验当前会话是否处于二级认证有效期内,校验失败会抛出异常
-StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
-```
-
-即使不运行测试,相信您也能意会到绝大多数 API 的用法。
-
-
-## Sa-Token 功能一览
- **登录认证** —— 单端登录、多端登录、同端互斥登录、七天内免登录
- **权限认证** —— 权限认证、角色认证、会话二级认证
@@ -119,7 +61,7 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
## Sa-Token-SSO 单点登录
-网上的单点登录教程大多以CAS流程为主,其实对于不同的系统架构,实现单点登录的步骤也大为不同,Sa-Token由简入难将其划分为三种模式:
+Sa-Token-SSO 由简入难划分为三种模式,解决不同架构下的 SSO 接入问题:
| 系统架构 | 采用模式 | 简介 | 文档链接 |
| :-------- | :-------- | :-------- | :-------- |
@@ -131,8 +73,6 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
1. 前端同域:就是指多个系统可以部署在同一个主域名之下,比如:`c1.domain.com`、`c2.domain.com`、`c3.domain.com`
2. 后端同Redis:就是指多个系统可以连接同一个Redis。PS:这里并不需要把所有项目的数据都放在同一个Redis中,Sa-Token提供了 **`[权限缓存与业务缓存分离]`** 的解决方案,详情戳:[Alone独立Redis插件](http://sa-token.dev33.cn/doc/index.html#/plugin/alone-redis)
3. 如果既无法做到前端同域,也无法做到后端同Redis,那么只能走模式三,Http请求获取会话(Sa-Token对SSO提供了完整的封装,你只需要按照示例从文档上复制几段代码便可以轻松集成)
-4. 技术选型一定要根据系统架构对症下药,切不可胡乱选择
-
## Sa-Token-OAuth2.0 授权登录
Sa-OAuth2 模块基于 [RFC-6749 标准](https://tools.ietf.org/html/rfc6749) 编写,通过Sa-OAuth2你可以非常轻松的实现系统的OAuth2.0授权认证
@@ -154,12 +94,6 @@ Sa-OAuth2 模块基于 [RFC-6749 标准](https://tools.ietf.org/html/rfc6749)

-## Star 趋势
-[](https://giteye.net/chart/77YQZ6UK)
-
-[](https://starchart.cc/dromara/sa-token)
-
-
## 使用Sa-Token的开源项目
- [[ sa-plus ]](https://gitee.com/click33/sa-plus):一个基于 SpringBoot 架构的快速开发框架,内置代码生成器
@@ -201,11 +135,6 @@ Sa-OAuth2 模块基于 [RFC-6749 标准](https://tools.ietf.org/html/rfc6749)
- [[ TLog ]](https://gitee.com/dromara/TLog):一个轻量级的分布式日志标记追踪神器
-## 贡献者名单
-感谢每一个为 Sa-Token 贡献代码的小伙伴
-
-[](https://giteye.net/chart/CGZ7GT8E)
-
## 交流群
QQ交流群:1群:1002350610 (已满) 、
diff --git a/pom.xml b/pom.xml
index 73074ff6..d982dc28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
- 1.30.0.RC
+ 1.30.0
1.8
utf-8
utf-8
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java
deleted file mode 100644
index 31a4833e..00000000
--- a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-//package cn.dev33.satoken.action;
-//
-//import java.lang.reflect.AnnotatedElement;
-//import java.lang.reflect.Method;
-//import java.util.List;
-//
-//import cn.dev33.satoken.session.SaSession;
-//
-///**
-// * v1.27+ 此接口已废弃,目前版本暂时向下兼容,请及时更换为 SaStrategy
-// * Sa-Token 逻辑代理接口
-// * 此接口将会代理框架内部的一些关键性逻辑,方便开发者进行按需重写
-// * @author kong
-// *
-// */
-//@Deprecated
-//public interface SaTokenAction {
-//
-// /**
-// * 创建一个Token
-// * @param loginId 账号id
-// * @param loginType 账号类型
-// * @return token
-// */
-// public String createToken(Object loginId, String loginType);
-//
-// /**
-// * 创建一个Session
-// * @param sessionId Session的Id
-// * @return 创建后的Session
-// */
-// public SaSession createSession(String sessionId);
-//
-// /**
-// * 判断:集合中是否包含指定元素(模糊匹配)
-// * @param list 集合
-// * @param element 元素
-// * @return 是否包含
-// */
-// public boolean hasElement(List list, String element);
-//
-// /**
-// * 对一个Method对象进行注解检查(注解鉴权内部实现)
-// * @param method Method对象
-// */
-// public void checkMethodAnnotation(Method method);
-//
-// /**
-// * 从指定元素校验注解
-// * @param target /
-// */
-// public void validateAnnotation(AnnotatedElement target);
-//
-//}
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java b/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
deleted file mode 100644
index 8aa217c9..00000000
--- a/sa-token-core/src/main/java/cn/dev33/satoken/action/SaTokenActionDefaultImpl.java
+++ /dev/null
@@ -1,150 +0,0 @@
-//package cn.dev33.satoken.action;
-//
-//import java.lang.reflect.AnnotatedElement;
-//import java.lang.reflect.Method;
-//import java.util.List;
-//import java.util.UUID;
-//
-//import cn.dev33.satoken.SaManager;
-//import cn.dev33.satoken.annotation.SaCheckBasic;
-//import cn.dev33.satoken.annotation.SaCheckLogin;
-//import cn.dev33.satoken.annotation.SaCheckPermission;
-//import cn.dev33.satoken.annotation.SaCheckRole;
-//import cn.dev33.satoken.annotation.SaCheckSafe;
-//import cn.dev33.satoken.basic.SaBasicUtil;
-//import cn.dev33.satoken.session.SaSession;
-//import cn.dev33.satoken.strategy.SaStrategy;
-//import cn.dev33.satoken.util.SaFoxUtil;
-//import cn.dev33.satoken.util.SaTokenConsts;
-//
-///**
-// * v1.27+ 此接口已废弃,目前版本暂时向下兼容,请及时更换为 SaStrategy
-// * Sa-Token 逻辑代理接口 [默认实现类]
-// * @author kong
-// *
-// */
-//@Deprecated
-//public class SaTokenActionDefaultImpl implements SaTokenAction {
-//
-// /**
-// * 创建一个Token
-// */
-// @Override
-// public String createToken(Object loginId, String loginType) {
-// // 根据配置的tokenStyle生成不同风格的token
-// String tokenStyle = SaManager.getConfig().getTokenStyle();
-// // uuid
-// if(SaTokenConsts.TOKEN_STYLE_UUID.equals(tokenStyle)) {
-// return UUID.randomUUID().toString();
-// }
-// // 简单uuid (不带下划线)
-// if(SaTokenConsts.TOKEN_STYLE_SIMPLE_UUID.equals(tokenStyle)) {
-// return UUID.randomUUID().toString().replaceAll("-", "");
-// }
-// // 32位随机字符串
-// if(SaTokenConsts.TOKEN_STYLE_RANDOM_32.equals(tokenStyle)) {
-// return SaFoxUtil.getRandomString(32);
-// }
-// // 64位随机字符串
-// if(SaTokenConsts.TOKEN_STYLE_RANDOM_64.equals(tokenStyle)) {
-// return SaFoxUtil.getRandomString(64);
-// }
-// // 128位随机字符串
-// if(SaTokenConsts.TOKEN_STYLE_RANDOM_128.equals(tokenStyle)) {
-// return SaFoxUtil.getRandomString(128);
-// }
-// // tik风格 (2_14_16)
-// if(SaTokenConsts.TOKEN_STYLE_TIK.equals(tokenStyle)) {
-// return SaFoxUtil.getRandomString(2) + "_" + SaFoxUtil.getRandomString(14) + "_" + SaFoxUtil.getRandomString(16) + "__";
-// }
-// // 默认,还是uuid
-// return UUID.randomUUID().toString();
-// }
-//
-// /**
-// * 创建一个Session
-// */
-// @Override
-// public SaSession createSession(String sessionId) {
-// return new SaSession(sessionId);
-// }
-//
-// /**
-// * 判断:集合中是否包含指定元素(模糊匹配)
-// */
-// @Override
-// public boolean hasElement(List list, String element) {
-//
-// // 空集合直接返回false
-// if(list == null || list.size() == 0) {
-// return false;
-// }
-//
-// // 先尝试一下简单匹配,如果可以匹配成功则无需继续模糊匹配
-// if (list.contains(element)) {
-// return true;
-// }
-//
-// // 开始模糊匹配
-// for (String patt : list) {
-// if(SaFoxUtil.vagueMatch(patt, element)) {
-// return true;
-// }
-// }
-//
-// // 走出for循环说明没有一个元素可以匹配成功
-// return false;
-// }
-//
-// /**
-// * 对一个Method对象进行注解检查(注解鉴权内部实现)
-// */
-// @Override
-// public void checkMethodAnnotation(Method method) {
-//
-// // 先校验 Method 所属 Class 上的注解
-// validateAnnotation(method.getDeclaringClass());
-//
-// // 再校验 Method 上的注解
-// validateAnnotation(method);
-// }
-//
-// /**
-// * 从指定元素校验注解
-// * @param target see note
-// */
-// public void validateAnnotation(AnnotatedElement target) {
-//
-// // 校验 @SaCheckLogin 注解
-// SaCheckLogin checkLogin = (SaCheckLogin) SaStrategy.me.getAnnotation.apply(target, SaCheckLogin.class);
-// if(checkLogin != null) {
-// SaManager.getStpLogic(checkLogin.type()).checkByAnnotation(checkLogin);
-// }
-//
-// // 校验 @SaCheckRole 注解
-// SaCheckRole checkRole = (SaCheckRole) SaStrategy.me.getAnnotation.apply(target, SaCheckRole.class);
-// if(checkRole != null) {
-// SaManager.getStpLogic(checkRole.type()).checkByAnnotation(checkRole);
-// }
-//
-// // 校验 @SaCheckPermission 注解
-// SaCheckPermission checkPermission = (SaCheckPermission) SaStrategy.me.getAnnotation.apply(target, SaCheckPermission.class);
-// if(checkPermission != null) {
-// SaManager.getStpLogic(checkPermission.type()).checkByAnnotation(checkPermission);
-// }
-//
-// // 校验 @SaCheckSafe 注解
-// SaCheckSafe checkSafe = (SaCheckSafe) SaStrategy.me.getAnnotation.apply(target, SaCheckSafe.class);
-// if(checkSafe != null) {
-// SaManager.getStpLogic(checkSafe.type()).checkByAnnotation(checkSafe);
-// }
-//
-// // 校验 @SaCheckBasic 注解
-// SaCheckBasic checkBasic = (SaCheckBasic) SaStrategy.me.getAnnotation.apply(target, SaCheckBasic.class);
-// if(checkBasic != null) {
-// SaBasicUtil.check(checkBasic.realm(), checkBasic.account());
-// }
-//
-// }
-//
-//}
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 c9d6d946..7eace922 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
@@ -13,7 +13,7 @@ public class SaTokenConsts {
/**
* Sa-Token 当前版本号
*/
- public static final String VERSION_NO = "v1.30.0.RC";
+ public static final String VERSION_NO = "v1.30.0";
/**
* Sa-Token 开源地址 Gitee
diff --git a/sa-token-demo/sa-token-demo-alone-redis/pom.xml b/sa-token-demo/sa-token-demo-alone-redis/pom.xml
index aca5ab64..6886e9d2 100644
--- a/sa-token-demo/sa-token-demo-alone-redis/pom.xml
+++ b/sa-token-demo/sa-token-demo-alone-redis/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-dubbo-consumer/pom.xml b/sa-token-demo/sa-token-demo-dubbo-consumer/pom.xml
index ebba72f6..8a941bc5 100644
--- a/sa-token-demo/sa-token-demo-dubbo-consumer/pom.xml
+++ b/sa-token-demo/sa-token-demo-dubbo-consumer/pom.xml
@@ -16,7 +16,7 @@
1.8
3.1.1
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-dubbo-provider/pom.xml b/sa-token-demo/sa-token-demo-dubbo-provider/pom.xml
index 9ba7e59d..c9292252 100644
--- a/sa-token-demo/sa-token-demo-dubbo-provider/pom.xml
+++ b/sa-token-demo/sa-token-demo-dubbo-provider/pom.xml
@@ -16,7 +16,7 @@
1.8
3.1.1
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-jwt/pom.xml b/sa-token-demo/sa-token-demo-jwt/pom.xml
index 489e645d..6e348ac0 100644
--- a/sa-token-demo/sa-token-demo-jwt/pom.xml
+++ b/sa-token-demo/sa-token-demo-jwt/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-oauth2-client/pom.xml b/sa-token-demo/sa-token-demo-oauth2-client/pom.xml
index f3280320..2617edcc 100644
--- a/sa-token-demo/sa-token-demo-oauth2-client/pom.xml
+++ b/sa-token-demo/sa-token-demo-oauth2-client/pom.xml
@@ -17,7 +17,7 @@
1.8
3.1.1
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-oauth2-server/pom.xml b/sa-token-demo/sa-token-demo-oauth2-server/pom.xml
index ec4488a8..ff5ce390 100644
--- a/sa-token-demo/sa-token-demo-oauth2-server/pom.xml
+++ b/sa-token-demo/sa-token-demo-oauth2-server/pom.xml
@@ -17,7 +17,7 @@
1.8
3.1.1
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-quick-login/pom.xml b/sa-token-demo/sa-token-demo-quick-login/pom.xml
index 9f951b93..cf0f7218 100644
--- a/sa-token-demo/sa-token-demo-quick-login/pom.xml
+++ b/sa-token-demo/sa-token-demo-quick-login/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-solon/pom.xml b/sa-token-demo/sa-token-demo-solon/pom.xml
index 09ff61eb..53b55bbe 100644
--- a/sa-token-demo/sa-token-demo-solon/pom.xml
+++ b/sa-token-demo/sa-token-demo-solon/pom.xml
@@ -9,7 +9,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-springboot-redis/pom.xml b/sa-token-demo/sa-token-demo-springboot-redis/pom.xml
index 2d80547d..0dc8aa5e 100644
--- a/sa-token-demo/sa-token-demo-springboot-redis/pom.xml
+++ b/sa-token-demo/sa-token-demo-springboot-redis/pom.xml
@@ -17,7 +17,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-springboot-redis/src/main/java/com/pj/MySaTokenListener.java b/sa-token-demo/sa-token-demo-springboot-redis/src/main/java/com/pj/MySaTokenListener.java
deleted file mode 100644
index 2d8b8c4f..00000000
--- a/sa-token-demo/sa-token-demo-springboot-redis/src/main/java/com/pj/MySaTokenListener.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.pj;
-
-import org.springframework.stereotype.Component;
-
-import cn.dev33.satoken.listener.SaTokenListener;
-import cn.dev33.satoken.stp.SaLoginModel;
-
-/**
- * 自定义侦听器的实现
- */
-@Component
-public class MySaTokenListener implements SaTokenListener {
-
- /** 每次登录时触发 */
- @Override
- public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginModel loginModel) {
- // ...
- }
-
- /** 每次注销时触发 */
- @Override
- public void doLogout(String loginType, Object loginId, String tokenValue) {
- // ...
- }
-
- /** 每次被踢下线时触发 */
- @Override
- public void doKickout(String loginType, Object loginId, String tokenValue) {
- // ...
- }
-
- /** 每次被顶下线时触发 */
- @Override
- public void doReplaced(String loginType, Object loginId, String tokenValue) {
- // ...
- }
-
- /** 每次被封禁时触发 */
- @Override
- public void doDisable(String loginType, Object loginId, long disableTime) {
- // ...
- }
-
- /** 每次被解封时触发 */
- @Override
- public void doUntieDisable(String loginType, Object loginId) {
- // ...
- }
-
- /** 每次创建Session时触发 */
- @Override
- public void doCreateSession(String id) {
- // ...
- }
-
- /** 每次注销Session时触发 */
- @Override
- public void doLogoutSession(String id) {
- // ...
- }
-
-}
diff --git a/sa-token-demo/sa-token-demo-springboot/pom.xml b/sa-token-demo/sa-token-demo-springboot/pom.xml
index 541d7c63..afaf8993 100644
--- a/sa-token-demo/sa-token-demo-springboot/pom.xml
+++ b/sa-token-demo/sa-token-demo-springboot/pom.xml
@@ -17,7 +17,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-sso-server/pom.xml b/sa-token-demo/sa-token-demo-sso-server/pom.xml
index af57f8b0..18cdd8d9 100644
--- a/sa-token-demo/sa-token-demo-sso-server/pom.xml
+++ b/sa-token-demo/sa-token-demo-sso-server/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-sso1-client/pom.xml b/sa-token-demo/sa-token-demo-sso1-client/pom.xml
index f1a74e8d..c21a3263 100644
--- a/sa-token-demo/sa-token-demo-sso1-client/pom.xml
+++ b/sa-token-demo/sa-token-demo-sso1-client/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-sso2-client/pom.xml b/sa-token-demo/sa-token-demo-sso2-client/pom.xml
index dd655d54..da44a372 100644
--- a/sa-token-demo/sa-token-demo-sso2-client/pom.xml
+++ b/sa-token-demo/sa-token-demo-sso2-client/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-sso3-client/pom.xml b/sa-token-demo/sa-token-demo-sso3-client/pom.xml
index ee90d827..9af2f62c 100644
--- a/sa-token-demo/sa-token-demo-sso3-client/pom.xml
+++ b/sa-token-demo/sa-token-demo-sso3-client/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-thymeleaf/pom.xml b/sa-token-demo/sa-token-demo-thymeleaf/pom.xml
index ec496107..3227b68d 100644
--- a/sa-token-demo/sa-token-demo-thymeleaf/pom.xml
+++ b/sa-token-demo/sa-token-demo-thymeleaf/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-webflux/pom.xml b/sa-token-demo/sa-token-demo-webflux/pom.xml
index 2eac97eb..d71464d7 100644
--- a/sa-token-demo/sa-token-demo-webflux/pom.xml
+++ b/sa-token-demo/sa-token-demo-webflux/pom.xml
@@ -16,7 +16,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-websocket-spring/pom.xml b/sa-token-demo/sa-token-demo-websocket-spring/pom.xml
index 08f862bc..e0a4b2a7 100644
--- a/sa-token-demo/sa-token-demo-websocket-spring/pom.xml
+++ b/sa-token-demo/sa-token-demo-websocket-spring/pom.xml
@@ -17,7 +17,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-demo/sa-token-demo-websocket/pom.xml b/sa-token-demo/sa-token-demo-websocket/pom.xml
index 5ddbb0b5..b18f7b89 100644
--- a/sa-token-demo/sa-token-demo-websocket/pom.xml
+++ b/sa-token-demo/sa-token-demo-websocket/pom.xml
@@ -17,7 +17,7 @@
- 1.30.0.RC
+ 1.30.0
diff --git a/sa-token-doc/doc/README.md b/sa-token-doc/doc/README.md
index 98dd7a87..b9225ef2 100644
--- a/sa-token-doc/doc/README.md
+++ b/sa-token-doc/doc/README.md
@@ -1,7 +1,7 @@
-Sa-Token v1.30.0.RC
+Sa-Token v1.30.0
一个轻量级 Java 权限认证框架,让鉴权变得简单、优雅!
@@ -122,10 +122,6 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
-[](https://giteye.net/chart/77YQZ6UK)
-
-
-
[](https://starchart.cc/dromara/sa-token)
如果 Sa-Token 帮助到了您,希望您可以为其点上一个 `star`:
@@ -133,19 +129,10 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
[GitHub](https://github.com/dromara/sa-token)
-
-
## 使用Sa-Token的开源项目
参考:[Sa-Token 生态](/more/link)
-## 贡献者名单
-感谢每一个为 Sa-Token 贡献代码的小伙伴
-
-
-
-[](https://giteye.net/chart/CGZ7GT8E)
-
## 交流群
QQ交流群:1群:1002350610 (已满) 、
2群:614714762 [点击加入](https://jq.qq.com/?_wv=1027&k=b759RZrL)
diff --git a/sa-token-doc/doc/index.html b/sa-token-doc/doc/index.html
index 07b9130f..aa11b204 100644
--- a/sa-token-doc/doc/index.html
+++ b/sa-token-doc/doc/index.html
@@ -20,7 +20,7 @@
Sa-Token
-
v1.30.0.RC
+
v1.30.0
@@ -114,7 +114,7 @@