mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-10-20 18:47:25 +08:00
v1.17.0 更新
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<p align="center">
|
||||
<img alt="logo" src="https://gitee.com/dromara/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.16.0</h1>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.17.0</h1>
|
||||
<h4 align="center">这可能是史上功能最全的 Java 权限认证框架!</h4>
|
||||
<h4 align="center">
|
||||
<a href="https://gitee.com/dromara/sa-token/stargazers"><img src="https://gitee.com/dromara/sa-token/badge/star.svg"></a>
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
|
||||
## Sa-Token是什么?
|
||||
sa-token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0 等一系列权限相关问题
|
||||
Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0 等一系列权限相关问题
|
||||
|
||||
框架针对踢人下线、自动续签、前后台分离、分布式会话……等常见业务进行N多适配,通过sa-token,你可以以一种极简的方式实现系统的权限认证部分
|
||||
|
||||
@@ -42,7 +42,7 @@ sa-token是一个轻量级Java权限认证框架,主要解决:登录认证
|
||||
|
||||
## Sa-Token 能做什么?
|
||||
|
||||

|
||||

|
||||
|
||||
- **登录验证** —— 轻松登录鉴权,并提供五种细分场景值
|
||||
- **权限验证** —— 适配RBAC权限模型,不同角色不同授权
|
||||
@@ -65,6 +65,7 @@ sa-token是一个轻量级Java权限认证框架,主要解决:登录认证
|
||||
- **会话治理** —— 提供方便灵活的会话查询接口
|
||||
- **记住我模式** —— 适配[记住我]模式,重启浏览器免验证
|
||||
- **密码加密** —— 提供密码加密模块,可快速MD5、SHA1、SHA256、AES、RSA加密
|
||||
- **全局侦听器** —— 在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作
|
||||
- **开箱即用** —— 提供SpringMVC、WebFlux等常见web框架starter集成包,真正的开箱即用
|
||||
- **更多功能正在集成中...** —— 如有您有好想法或者建议,欢迎加群交流
|
||||
|
||||
|
@@ -25,6 +25,7 @@
|
||||
- [同端互斥登录](/use/mutex-login)
|
||||
- [密码加密](/use/password-secure)
|
||||
- [会话治理](/use/search-session)
|
||||
- [全局侦听器](/use/global-listener)
|
||||
|
||||
- **进阶**
|
||||
- [全局过滤器](/use/global-filter)
|
||||
|
@@ -21,6 +21,7 @@
|
||||
<nav>
|
||||
<select onchange="location.href=this.value">
|
||||
<option value="http://sa-token.dev33.cn/doc/index.html">最新版</option>
|
||||
<option value="http://sa-token.dev33.cn/v/v1.16.0/doc/index.html">v1.16.0</option>
|
||||
<option value="http://sa-token.dev33.cn/v/v1.15.0/doc/index.html">v1.15.0</option>
|
||||
<option value="http://sa-token.dev33.cn/v/v1.14.0/doc/index.html">v1.14.0</option>
|
||||
<option value="http://sa-token.dev33.cn/v/v1.13.0/doc/index.html">v1.13.0</option>
|
||||
@@ -46,7 +47,7 @@
|
||||
</div>
|
||||
<script>
|
||||
var name = '<img style="width: 60px; height: 60px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
|
||||
name += '<b style="font-size: 28px; vertical-align: middle;">sa-token</b> <sub>v1.16.0</sub>'
|
||||
name += '<b style="font-size: 28px; vertical-align: middle;">sa-token</b> <sub>v1.17.0</sub>'
|
||||
window.$docsify = {
|
||||
name: name, // 名字
|
||||
repo: 'https://github.com/dromara/sa-token', // github地址
|
||||
|
@@ -1,6 +1,17 @@
|
||||
# 更新日志
|
||||
|
||||
|
||||
### 2021-4-17 @v1.17.0
|
||||
- 修复:在WebFlux环境中引入Redis集成包无法启动的问题
|
||||
- 修复:修复JWT集成示例中版本升级API的变更
|
||||
- 优化:优化启动时字符画打印
|
||||
- 文档:新增集成环境说明
|
||||
- 文档:新增功能介绍图
|
||||
- 新增:全局过滤器增加限定[拦截路径]与[排除路径]功能
|
||||
- 重构:全局过滤器执行函数放到成员变量里,连缀风格配置
|
||||
- 新增:新增全局侦听器,可在用户登陆、注销、被踢下线等关键性操作时进行一些AOP操作 **[重要]**
|
||||
|
||||
|
||||
### 2021-4-12 @v1.16.0
|
||||
- 新增:新增账号封禁功能,指定时间内账号无法登陆 **[重要]**
|
||||
- 新增:核心包脱离`ServletAPI`,彻底零依赖! **[重要]**
|
||||
@@ -12,7 +23,6 @@
|
||||
- 文档:新增推荐公众号列表
|
||||
|
||||
|
||||
|
||||
### 2021-3-23 @v1.15.0
|
||||
- 新增:文档添加源码涉及技术栈说明
|
||||
- 优化:优化路由拦截器模块文档,更简洁的示例
|
||||
|
@@ -12,7 +12,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-reactor-spring-boot-starter</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-servlet</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-core</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
<!---------------------------- tabs:end ------------------------------>
|
||||
@@ -56,19 +56,19 @@
|
||||
<!-- tabs:start -->
|
||||
<!-- tab:SpringMVC环境 (ServletAPI) -->
|
||||
``` xml
|
||||
implementation 'cn.dev33:sa-token-spring-boot-starter:1.16.0.RELEASE'
|
||||
implementation 'cn.dev33:sa-token-spring-boot-starter:1.17.0'
|
||||
```
|
||||
<!-- tab:WebFlux环境 (Reactor) -->
|
||||
``` xml
|
||||
implementation 'cn.dev33:sa-token-reactor-spring-boot-starter:1.16.0.RELEASE'
|
||||
implementation 'cn.dev33:sa-token-reactor-spring-boot-starter:1.17.0'
|
||||
```
|
||||
<!-- tab:Servlet容器环境 -->
|
||||
``` xml
|
||||
implementation 'cn.dev33:sa-token-servlet:1.16.0.RELEASE'
|
||||
implementation 'cn.dev33:sa-token-servlet:1.17.0'
|
||||
```
|
||||
<!-- tab:其它 -->
|
||||
``` xml
|
||||
implementation 'cn.dev33:sa-token-core:1.16.0.RELEASE'
|
||||
implementation 'cn.dev33:sa-token-core:1.17.0'
|
||||
```
|
||||
<!-- tabs:end -->
|
||||
|
||||
|
@@ -17,7 +17,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
|
@@ -19,7 +19,7 @@ WebFlux基于Reactor响应式模型开发,有着与标准ServletAPI完全不
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-reactor-spring-boot-starter</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
|
@@ -21,7 +21,7 @@ sa-token内置两种模式完成注解鉴权,分别是`AOP模式`和`拦截器
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-spring-aop</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
|
@@ -14,7 +14,7 @@ Sa-token默认将会话数据保存在内存中,此模式读写速度最快,
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-dao-redis</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
优点:兼容性好,缺点:Session序列化后基本不可读,对开发者来讲等同于乱码
|
||||
@@ -26,7 +26,7 @@ Sa-token默认将会话数据保存在内存中,此模式读写速度最快,
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token-dao-redis-jackson</artifactId>
|
||||
<version>1.16.0.RELEASE</version>
|
||||
<version>1.17.0</version>
|
||||
</dependency>
|
||||
```
|
||||
优点:Session序列化后可读性强,可灵活手动修改,缺点:兼容性稍差
|
||||
|
72
sa-token-doc/doc/use/global-listener.md
Normal file
72
sa-token-doc/doc/use/global-listener.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# 全局侦听器
|
||||
|
||||
接口`SaTokenListener`是Sa-Token的全局侦听器,通过实现此接口,你可以在用户登陆、退出、被踢下线等关键性操作时进行一些AOP操作
|
||||
|
||||
框架对此侦听器的默认实现是log日志输出,你可以通过配置`spring.sa-token.is-log=true`开启
|
||||
|
||||
下面我们演示一下如何自定义侦听器的实现:
|
||||
|
||||
---
|
||||
|
||||
|
||||
### 自定义侦听器实现
|
||||
|
||||
新建`MySaTokenListener.java`,继承`SaTokenListener`接口, 并添加上注解`@Component`,保证此类被`SpringBoot`扫描到
|
||||
``` java
|
||||
/**
|
||||
* 自定义侦听器的实现
|
||||
*/
|
||||
@Component
|
||||
public class MySaTokenListener implements SaTokenListener {
|
||||
|
||||
/** 每次登录时触发 */
|
||||
@Override
|
||||
public void doLogin(String loginKey, Object loginId, SaLoginModel loginModel) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次注销时触发 */
|
||||
@Override
|
||||
public void doLogout(String loginKey, Object loginId, String tokenValue) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次被踢下线时触发 */
|
||||
@Override
|
||||
public void doLogoutByLoginId(String loginKey, Object loginId, String tokenValue, String device) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次被顶下线时触发 */
|
||||
@Override
|
||||
public void doReplaced(String loginKey, Object loginId, String tokenValue, String device) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次被封禁时触发 */
|
||||
@Override
|
||||
public void doDisable(String loginKey, Object loginId, long disableTime) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次被解封时触发 */
|
||||
@Override
|
||||
public void doUntieDisable(String loginKey, Object loginId) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次创建Session时触发 */
|
||||
@Override
|
||||
public void doCreateSession(String id) {
|
||||
// ...
|
||||
}
|
||||
|
||||
/** 每次注销Session时触发 */
|
||||
@Override
|
||||
public void doLogoutSession(String id) {
|
||||
// ...
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
Reference in New Issue
Block a user