Sa-Token:48,800+ Star 的背后让鉴权变得简单优雅
1. 项目背景
根据 Statista 数据,2025 年全球身份认证市场规模已达 285 亿美元,预计 2027 年将突破 400 亿。在 Java 生态中,权限认证框架一直是企业级开发的核心基础设施。然而 Shiro 配置繁琐、Spring Security 学习曲线陡峭,让大量开发者望而却步。Sa-Token 以**"让鉴权变得简单、优雅"**为理念,七年迭代已成为 Gitee 最受欢迎的认证框架。
Gitee 地址:https://gitee.com/dromara/sa-token
Star 数:48,800+(Gitee 推荐项目排行榜第一)
语言:Java
License:Apache-2.0
2. 目标用户
Java 后端开发者:需要在 SpringBoot/Solon 项目中快速集成权限认证
中小企业技术团队:缺乏专业安全团队,需要开箱即用的认证方案
微服务架构团队:需要网关鉴权、分布式会话、SSO 单点登录
开源项目维护者:寻找轻量级、文档完善的权限框架
3. 平台定位
Sa-Token 定位为一站式 Java 权限认证框架,核心愿景是降低权限开发的门槛。它不是 Shiro 或 Spring Security 的封装套壳,而是从零自研的纯血框架,覆盖登录认证、权限认证、SSO 单点登录、OAuth2.0、微服务鉴权五大核心场景。
4. 平台技术
核心框架:Java,零依赖设计(核心包无第三方依赖)
Web 框架适配:SpringBoot 2/3/4、Solon、JFinal、WebFlux
持久层扩展:支持 Redis、内存、数据库等多种存储方式
Token 引擎:内置 6 种 Token 风格(简单式、UUID、Simple-UUID、随机数字、JWT 简单模式、JWT 模式)
协议支持:OAuth2.0、JWT、Http Basic、API 参数签名
5. 核心功能
🔐 登录认证:单端/多端登录、同端互斥、七天免登录、记住我模式
🛡️ 权限认证:权限/角色认证、注解式鉴权、路由拦截式鉴权、二级认证
🌐 SSO 单点登录:三种模式覆盖同域/跨域/不同 Redis 场景,参数精准不丢失
🔑 OAuth2.0:授权码式、隐藏式、密码式、客户端凭证式四种模式
🏗️ 微服务鉴权:适配 Gateway/ShenYu/Zuul 网关,支持 Dubbo/gRPC RPC 调用鉴权
📝 实用插件:短 Token、API Key 授权、参数签名、自动续签、账号封禁
6. 独特优势
极简 API:一行代码完成登录
StpUtil.login(10001),一行代码完成鉴权StpUtil.checkLogin()完整文档:七年打磨的中文文档,几乎每句话经过反复修改,学习成本极低
社区活跃:25+ 微信群(500 人)、8+ QQ 群(1000-2000 人),月 PV 20 万+
永久免费:Apache-2.0 协议,框架和文档永久免费开放
权威认证:Gitee GVP 项目、GitCode G-Star、OSCHINA 年度最火热开源社区之一
7. 安装使用
Maven 引入:
<dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-spring-boot-starter</artifactId> <version>1.45.0</version> </dependency>Gradle 引入:
implementation 'cn.dev33:sa-token-spring-boot-starter:1.45.0'快速开始——登录认证:
// 一行代码完成登录 StpUtil.login(10001); // 校验登录状态 StpUtil.checkLogin(); // 获取当前登录 ID long id = StpUtil.getLoginIdAsLong();权限认证——注解方式:
// 只有具备 user:add 权限才能访问 @SaCheckPermission("user:add") @PostMapping("/user/add") public String addUser(@RequestBody SysUser user) { return "用户添加成功"; }路由拦截鉴权:
@Configuration public class SaTokenConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SaInterceptor(handle -> { SaRouter.match("/user/**", r -> StpUtil.checkPermission("user")); SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin")); })).addPathPatterns("/**"); } }集成 Redis(持久化会话):
<!-- 引入 Sa-Token 整合 Redis --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-dao-redis-jackson</artifactId> <version>1.45.0</version> </dependency> <!-- 提供 Redis 连接池 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>8. 应用场景
企业后台管理系统:快速搭建 RBAC 权限体系,支持多角色、多权限精细化管理
多系统 SSO 统一登录:三种 SSO 模式覆盖各种部署架构,参数不丢失是独特优势
微服务网关鉴权:在 Gateway 层统一拦截,后端服务无需重复实现认证逻辑
前后端分离项目:支持 Token 模式,适配 APP、小程序等不支持 Cookie 的终端
多账号体系:一个系统多套账号分开鉴权(如商城的 User 表和 Admin 表独立认证)
总结
Sa-Token 用七年时间证明了**"简单就是力量"。48,800+ Star 的背后,是大量开发者对 Shiro 和 Spring Security 复杂配置的共同反抗。如果你正在寻找一个一行代码就能用、文档写得比代码还详细、社区活跃到随时有人答疑**的认证框架,Sa-Token 值得作为首选。
项目地址:https://gitee.com/dromara/sa-token
