项目详情
Sa-Token
一行代码搞定 Java 权限认证的轻量级框架
更新于 2026-07-23
← 返回汇总
项目速览
一句话定位
一行代码搞定 Java 权限认证
轻量级 Java 权限认证框架。五大核心模块(登录、鉴权、SSO、OAuth2.0、微服务)+ 40+ 实用功能,开箱即用零配置。适合受够了 Spring Security 繁琐配置、想要中文文档 + 快速上手的国内 Java 团队。
项目速览
核心数据
Gitee 全平台推荐项目排名第一;GitHub Star 是 Spring Security 的 1.97 倍、Apache Shiro 的 4.19 倍。
为什么存在
传统鉴权框架的三个痛点
Spring Security 太重
配置链路长、概念抽象,简单登录要写一堆 Filter/Provider/Context。学习曲线陡。
Shiro 停滞老旧
老牌框架但更新慢,对微服务、前后端分离、SSO 等现代架构支持弱。
重复造轮子
登录、踢人、记住我、权限、SSO……每个项目都手写一遍,没有统一方案。
核心理念
一句话登录,一行代码鉴权
无需实现任何接口,无需任何配置文件,一句静态调用完成会话登录。
// 1. 会话登录,参数填账号 id
StpUtil.login(10001);
// 2. 校验是否已登录,未登录则抛 NotLoginException
StpUtil.checkLogin();
// 3. 踢人下线
StpUtil.kickout(10077);
核心机制
五种鉴权风格,按场景选用
代码式
StpUtil.checkLogin()
业务代码内直接调用,最灵活。需要时才校验。
注解式
@SaCheckPermission("user:add")
优雅分离鉴权与业务代码。支持权限、角色、登录、二级认证注解。
路由拦截
SaInterceptor + SaRouter
按路由划分模块,适配 Restful。一处配置全局生效。
全局过滤器
SaServletFilter
处理跨域、全局安全响应头,更底层的拦截层。
功能全景
五大核心模块
| 模块 | 覆盖能力 |
登录认证 | 单端/多端登录、同端互斥(QQ 式)、记住我、七天免登录 |
权限认证 | 权限/角色认证、二级认证、会话查询、模拟他人账号、临时身份切换 |
单点登录 SSO | 三种模式:同域同 Redis、跨域同 Redis、跨域跨 Redis;单点注销 |
OAuth2.0 | 四种授权模式:授权码、隐藏式、密码式、客户端凭证;支持 openid |
微服务鉴权 | Gateway/ShenYu/Zuul 网关拦截、Dubbo/gRPC RPC 调用状态传递、API 参数签名 |
功能全景
40+ 实用能力
- 踢人下线:按账号 id 或 Token 值精准踢人
- 同端互斥登录:手机电脑同时在线,两部手机互斥
- 账号封禁:登录封禁、按业务分类封禁、阶梯处罚
- Token 风格定制:内置六种风格 + 自定义生成策略
- 自动续签:两种过期策略灵活搭配,自动续签
- 密码加密:内置 MD5/SHA1/SHA256/AES 快速加密
- JWT 集成:三种 jwt 集成方案 + token 扩展参数
- 多账号体系:一套系统多套账号分开鉴权(如 User 表与 Admin 表)
架构设计
分层架构与扩展点
API 层
StpUtil / StpLogic
静态门面,一行代码调用。StpLogic 可按账号体系多实例化。
集成层
sa-token-starter
SpringBoot2/3/4、Solon、JFinal、WebFlux 等框架集成包,开箱即用。
核心层
sa-token-core
框架内核:登录、鉴权、会话、Token 生成的全部业务逻辑。
持久层
SaTokenDao(可插拔)
默认内存,可换 Redis(重启不丢)、独立 Redis(权限缓存与业务缓存分离)。
快速上手
三步接入 SpringBoot
<!-- 1. pom.xml 引入依赖 -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.45.0</version>
</dependency>
// 2. 注册拦截器(可选,做路由级鉴权时需要)
registry.addInterceptor(new SaInterceptor(handler -> {
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
})).addPathPatterns("/**");
// 3. 业务里直接用 StpUtil
StpUtil.login(10001); // 完成
框架对比
vs Spring Security / Shiro
| 维度 | Sa-Token | Spring Security | Shiro |
| 上手成本 | 极低,零配置 | 高,配置链长 | 中 |
| 文档 | 中文,七年打磨 | 英文为主 | 英文为主 |
| SSO/OAuth2 | 内置开箱即用 | 需额外配置 | 需扩展 |
| 微服务 | 网关鉴权原生支持 | 需自行整合 | 弱 |
| 生态 | 国内活跃 | Spring 全家桶绑定 | 更新慢 |
注:Spring Security 在 Spring 生态深度集成与企业级安全上有不可替代性,Sa-Token 胜在「够用且简单」。
适用场景
适合谁用
- 国内 Java Web 团队:中文文档 + 中文社区,沟通无障碍,快速落地
- 中小项目快速启动:后台管理、商城、SaaS,登录鉴权想一天搞定
- 微服务架构:网关统一鉴权 + RPC 状态传递,省去自行搭造轮子
- 多系统统一认证:SSO 三模式覆盖同域/跨域/跨 Redis 各种架构
- 学习权限设计:文档本身就是权限架构最佳实践教材
风险提示
需要权衡
- 生态偏国内:核心影响力集中在 Gitee/中文社区,海外与 Spring 生态耦合度低
- 非 Spring 官方:大型企业级项目若已深度绑定 Spring Security,迁移有成本
- 安全审计深度:相比 Spring Security 经历的无数 CVE 打磨,第三方安全审计背书相对少
- Token 默认内存存储:生产环境必须配 Redis,否则重启丢会话
生态与荣誉
Dromara 顶尖项目
- Dromara 开源组织:旗下顶尖项目之一,与 Sa-Token 同组织还有 Hutool、Hertz 等
- 权威认证:Gitee GVP、GitCode G-Star、OSCHINA 年度最火热中国开源项目、开放原子基金会 2023 快速成长项目
- 社区活跃:25+ 微信群(500 人)、8+ QQ 群,在线文档月 PV 20 万+
- 全框架覆盖:SpringBoot2/3/4、Solon、JFinal、WebFlux 均有集成包
潜力评估
未来空间
国内 Java 权限认证领域事实标准之一。凭借极简 API + 中文文档护城河,在中小项目与微服务场景持续吃份额。天花板取决于能否突破中文圈走向国际化,以及微服务/云原生鉴权的持续演进。