Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配

Sa-Token 是一款 开源免费 的轻量级 Java 权限认证框架,主要解决:登录认证权限认证单点登录OAuth2.0微服务网关鉴权 等一系列权限相关问题。🔐

目前最新版本 v1.45.0 已推送至 Maven 中央仓库 🎉,大家可以通过如下方式引入:

xml 复制代码
<!-- Sa-Token 权限认证 -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot4-starter</artifactId>
    <version>1.45.0</version>
</dependency>

该版本包含大量 ⛏️️️新增特性、⛏️底层重构、⛏️️️代码优化 等,下面容我列举几条比较重要的更新内容供大家参阅:

🚀 更新点1:万人血书的 Spring Boot 4 集成包,它来了!

Spring Boot 4 正式版发布后,社区里「求适配」的呼声就没停过!fix: #869#IDB02G#IDGQYM 这次,它真的来了!🎉

本次更新新增了完整的 Spring Boot 4 集成支持:🌟

  • sa-token-spring-boot4-starter:WebMVC 环境下的 Spring Boot 4 集成包。
  • sa-token-reactor-spring-boot4-starter:Reactor 响应式环境下的 Spring Boot 4 集成包。

同时配套新增了示例项目:

  • sa-token-demo-springboot4:Spring Boot 4 + WebMVC 整合 demo。
  • sa-token-demo-webflux-springboot4:Spring Boot 4 + WebFlux 示例。

如果你正在或计划升级到 Spring Boot 4,可以直接引入对应 starter,体验与 Spring Boot 2/3 一致的丝滑集成。✨

🎯 更新点2:重复登录处理策略升级,可灵活配置是 "顶人下线" 还是 "不允许登录"

Sa-Token 在多端登录控制场景下,现已支持通过 replacedLoginExitMode 配置项自定义重复登录时的行为方式:

  • 当同一账号不允许多客户端同时登录时,以往 Sa-Token 的默认策略为"新登录顶掉旧会话",即新登录后会将旧端踢下线。🔄
  • 但部分业务对安全性有更高要求,例如用户 A 已在手机端登录,再用电脑登录时,希望直接拦截本次登录,不影响原有会话,即提示"该账号已在其他设备登录,无法顶替下线",而不是让手机端被踢下线。📱💻

本次更新新增了配置项 replacedLoginExitMode,你可通过它自由选择策略,无需变动业务代码,灵活应对不同安全需求。配置项含义说明如下:

  • replacedLoginExitMode = OLD_DEVICE:旧设备下线,新设备登录成功(默认行为,顶人下线模式)。
  • replacedLoginExitMode = NEW_DEVICE:新设备登录失败,旧设备维持在线(拦截本次登录)。

只需在 Sa-Token 配置文件或启动参数中切换即可,非常便捷。🛡️

merge: pr 349

📦 更新点3:新增 sa-token-jackson3、sa-token-snack4 插件,生态持续扩展

Sa-Token 的 JSON 与序列化生态一直在持续丰富,本次又迎来两位新成员:📚

  • sa-token-jackson3:用于 Jackson 3 的 JSON 操作。Jackson 3 是 Jackson 的最新大版本,如果你已经在使用 Jackson 3,现在可以无缝对接 Sa-Token 了。
  • sa-token-snack4 :用于 Snack4 的 JSON 操作。merge: pr 356

引入方式示例:

xml 复制代码
<!-- Sa-Token 整合 Jackson 3 -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-jackson3</artifactId>
    <version>1.45.0</version>
</dependency>

<!-- Sa-Token 整合 Snack4 -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-snack4</artifactId>
    <version>1.45.0</version>
</dependency>

无论你偏好 Jackson、Fastjson、Snack3 还是 Snack4,Sa-Token 都能满足。🎛️

🏗️ 更新点4:重构 sa-token-dependencies 及 WebMVC/Reactor 集成包

本次版本对依赖体系进行了一次重要重构:🔧

  • 重构 sa-token-dependencies 相关模块,优化依赖关系,使版本管理更清晰。
  • 重构 Spring Boot WebMVC/Reactor 相关集成包,优化模块划分与依赖传递。
  • 优化整体模块依赖关系,减少冗余、提升构建效率。

这是一次「看不见的升级」,但对长期维护和后续扩展都有积极影响。📐

📺 更新点5:SSO 模块新增 STS 协议定义、视频讲解与平台中心模式 demo

SSO 单点登录模块在本版本也有不少文档与示例上的增强:📖

  • STS 协议定义 :文档为 sa-token-sso 模块正式定义了 STS 协议,方便大家理解与对接。
  • 平台中心模式 demo:sso-server 前后端分离模式下,新增平台中心模式 demo 示例。
  • 消息处理器相关文档:补全了 SSO 模块内置消息处理器相关文档,修复了 msgType 参数说明与 API 说明。🔗
  • 视频讲解:B 站 up 主「王清江唷」录制了 SSO 篇共 29 集视频,从零到一讲解单点登录,非常适合入门与进阶。

🐞 更新点6:修复 OAuth2 序列化类型转换、Dubbo 上下文清理等问题

本版本修复了多个社区反馈的问题:🙏

  • OAuth2 :修复 sa-token-oauth2 组件使用 sa-token-fastjson2 序列化导致的类型转换问题。merge: pr 355
  • Dubbo :修复 Dubbo 上下文清理问题,避免 RPC 调用时上下文污染。merge: pr 889
  • Core :修复 StpUtil.getLoginIdByTokenNotThinkFreeze 方法缺少 static 修饰符的问题。
  • Core :优化路由匹配 pattern 缓存算法,消除魔法值。merge: pr 907

📚 更新点7:文档与社区建设

文档与社区方面也有不少更新:❤️

  • 新增 Sa-Token 内容合作者群,欢迎愿意参与文档、教程、视频等内容创作的小伙伴加入。
  • 新增赞赏码展示、文档首页 stars 对比图、解决跨域专题文章。
  • 优化框架 Slogan、README、案例库展示。
  • 文档主题切换增加水滴特效,登录认证、权限认证、路由拦截鉴权等章节优化。
  • 补全全局策略说明、数据结构说明,目录树增加项目架构设计栏目。
  • 新增 Maven 父子项目无法下载依赖的问题解决方案。merge: pr 358
  • 新增《Gitee 2025 年度开源项目 Web 应用开发 Top 2》证书展示,感谢社区认可。🏆

📜 完整更新日志

除了以上提到的几点以外,还有更多更新点无法逐一详细介绍,下面是 v1.45.0 版本的完整更新日志:

  • core:
    • 新增:新增重复登录处理策略,当同一账号不允许多客户端同时登录时支持选择踢人下线或拦截本次登录。 [重要] merge: pr 349
    • 修复:修复 StpUtil.getLoginIdByTokenNotThinkFreeze 方法缺少 static 修饰符的问题。
    • 优化:优化路由匹配 pattern 缓存算法,消除魔法值。merge: pr 907
    • 优化:移除冗余导包。
  • 插件:
    • 新增:新增 sa-token-jackson3 插件,用于 Jackson 3 的 JSON 操作。 [重要]
    • 新增:新增 sa-token-jackson3-test 单元测试。
    • 新增:新增 sa-token-snack4 插件。 [重要] merge: pr 356
    • 修复:修复 Dubbo 上下文清理问题。 merge: pr 889
    • 新增:loveqq-framework 版本更新。merge: pr 351
  • starter:
    • 新增:新增 sa-token-spring-boot4-starter 集成包,支持 Spring Boot 4 环境集成。 [重要]
    • 新增:新增 sa-token-reactor-spring-boot4-starter 集成包,支持 Reactor + Spring Boot 4 环境集成。 [重要]
    • 新增:新增 sa-token-demo-springboot4sa-token-demo-webflux-springboot4 示例。
    • 新增:新增 Spring Boot 4 整合 demo 示例。
  • 重构:
    • 重构:重构 sa-token-dependencies 相关模块,优化依赖关系。 [重要]
    • 重构:重构 Spring Boot WebMVC/Reactor 相关集成包,优化依赖关系。 [重要]
    • 优化:优化整体模块依赖关系。
  • Solon:
    • 优化:sa-token-solon-plugin 优化 Gateway 接口的处理,避免使用路由接口。merge: pr 348
  • SSO:
    • 新增:sso-server 前后端分离模式下 平台中心模式 demo 示例。
    • 修复:SSO 模块 msgType 参数说明、API 说明修正。
    • 新增:SSO 模块视频讲解链接:B站 王清江唷 SSO篇(29集)。 [重要]
    • 补全:SSO 模块内置消息处理器相关文档。
    • 新增:文档为 sa-token-sso 模块定义 STS 协议。 [重要]
  • OAuth2:
    • 修复:修复 sa-token-oauth2 组件使用 sa-token-fastjson2 序列化导致的类型转换问题。merge: pr 355
    • 优化:修改 ClientIdSecretModel 的读取构建逻辑。merge: pr 346
  • 文档:
    • 同步:同步公众号文章列表、博客列表、赞助者名单、企业登记案例。
    • 新增:新增 Sa-Token 内容合作者群。 [重要]
    • 新增:新增《Gitee 2025 年度开源项目 Web 应用开发 Top 2》证书展示。
    • 新增:新增赞赏码展示、文档首页 stars 对比图。
    • 新增:新增解决跨域专题文章。
    • 新增:增加微信群聊信息展示。
    • 优化:优化框架 Slogan。
    • 优化:优化 README、案例库展示。
    • 优化:文档主题切换增加水滴特效,调整主题色块顺序。
    • 优化:文档优化 [登录认证]、[权限认证]、[路由拦截鉴权] 篇。
    • 优化:补全全局策略说明、数据结构说明。
    • 新增:目录树增加专门栏目记录项目架构设计。
    • 优化:功能结构图增加点击事件跳转到对应功能文档。
    • 优化:子服务外网隔离章节增加示意图。
    • 优化:Same-Token 同源系统认证图示说明。
    • 修复:更换 GitCode logo 为 AtomGit。
    • 修复:更换 QQ 群链接、微信群聊展示图。
    • 修复:文档图片地址更换为本地文件。
    • 修复:错别字修复。
    • 修复:maven-pull.md 文档,解决父子项目依赖下载问题。
    • 新增:Maven 父子项目无法下载依赖的问题解决方案。merge: pr 358
    • 修复:订正文档错别字。merge: pr 354
    • 修复:文档内代码示例修正。merge: pr 347
  • AI:
    • 新增:新增 organize-update-log SKILL,用于格式化整理版本更新日志信息。
    • 新增:新增 commit-message SKILL,用于整理 git commit 日志信息。
    • 新增:新增 upgrade-version SKILL,用于统一升级修改版本号。
    • 新增:新增 remove-redundancy-import SKILL,用于检查 Java 类中无效冗余导包并移除。
  • 其它:
    • 新增:readme 增加快问快答区域。
    • 新增:增加忽略 .vscode 目录。
    • 优化:注释优化。
    • 重构:备忘录重构为专门的文件夹。
    • 重构:调整项目发布配置至 Maven Central Portal。merge: pr 792
    • 优化:部分构建配置升级到最新版。

更新日志在线文档直达链接:sa-token.cc/doc.html#/m...

🌟 其它

代码仓库地址:gitee.com/dromara/sa-...

框架功能结构图:

相关推荐
开心就好20253 小时前
iOS App 性能测试工具怎么选?使用克魔助手(Keymob)结合 Instruments 完成
后端·ios
神奇小汤圆4 小时前
牛客网Java面试题总结(金三银四最新版)
后端
NE_STOP4 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室4 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
Cache技术分享4 小时前
346. Java IO API - 操作文件和目录
前端·后端
sTone873754 小时前
web后端开发概念: VO 和 PO
java·后端·架构
user78805399898804 小时前
openclaw安装
后端
神奇小汤圆4 小时前
一篇文章彻底搞懂 MySQL 和 Redis:原理、区别、项目用法全解析
后端