Repolode
dromara

dromara/Sa-Token

一款 Java 权限认证框架,涵盖登录、权限、单点登录、OAuth2 与 JWT 等鉴权能力。

可替代:Spring SecurityApache Shiro

Star
19,111
Fork
2,911
未关闭 Issue
123
最近提交
22天前

这是什么?

Sa-Token 是一个 Java 权限认证框架,用于为 Web 应用处理登录认证和权限鉴权。它提供会话登录、角色与权限校验、踢人下线等功能,既可以通过注解也可以通过路由拦截来实施鉴权。核心调用非常简洁,例如 StpUtil.login(userId) 完成登录,StpUtil.checkLogin() 校验登录状态。

除基础登录外,项目还内置多种单点登录模式(同域、跨域、共享或跨 Redis),支持授权码、隐藏式、密码式和客户端凭证式的 OAuth2 服务端,并可在 Gateway、ShenYu、Zuul 等网关中做路由鉴权。此外还集成了 JWT、API Key 授权、API 参数签名、Http Basic 与 Digest 认证以及账号封禁等能力。

框架提供 Spring Boot 2、3/4、WebFlux、Solon、JFinal 等集成包,可选 Redis 作为持久层。文档与示例以中文为主。

核心功能

  • 01支持多端登录、单端登录与同端互斥登录
  • 02提供注解式与路由拦截式的权限和角色校验
  • 03内置三种单点登录模式,并支持单点注销
  • 04提供 OAuth2 服务端,覆盖四种授权模式
  • 05集成 JWT,并支持 API Key 秘钥授权
  • 06提供 API 参数签名,防止参数篡改和请求重放

适用场景

  • 为 Spring Boot 后端项目添加登录与角色权限控制
  • 在多个内部 Web 系统之间实现单点登录
  • 在微服务网关层统一做接口鉴权
  • 基于自有 Java 服务搭建 OAuth2 授权服务

快速上手

  1. 1

    在 pom.xml 中添加 Spring Boot 启动器依赖

  2. 2

    使用一行静态调用完成用户登录

    StpUtil.login(10001);
  3. 3

    保护接口,使其仅允许已登录的客户端访问

    StpUtil.checkLogin();

使用前须知

  • README 以中文为主,完整文档托管在 sa-token.com。
  • 仅适用于 Java;其他语言为社区独立移植版本,维护状态各不相同。

收录于专题

标签

常见问题

Sa-Token 是什么?
一款 Java 权限认证框架,涵盖登录、权限、单点登录、OAuth2 与 JWT 等鉴权能力。 Sa-Token 是一个 Java 权限认证框架,用于为 Web 应用处理登录认证和权限鉴权。它提供会话登录、角色与权限校验、踢人下线等功能,既可以通过注解也可以通过路由拦截来实施鉴权。核心调用非常简洁,例如 StpUtil.login(userId) 完成登录,StpUtil.checkLogin() 校验登录状态。
Sa-Token 可以免费使用吗?用的什么许可证?
Sa-Token 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
Sa-Token 还在维护吗?
活跃维护中。Sa-Token 最近一次提交是在 2026年10月16日。
Sa-Token 适合用来做什么?
为 Spring Boot 后端项目添加登录与角色权限控制 在多个内部 Web 系统之间实现单点登录 在微服务网关层统一做接口鉴权 基于自有 Java 服务搭建 OAuth2 授权服务
Sa-Token 怎么安装和运行?
在 pom.xml 中添加 Spring Boot 启动器依赖 使用一行静态调用完成用户登录: StpUtil.login(10001); 保护接口,使其仅允许已登录的客户端访问: StpUtil.checkLogin();
在哪里获取 Sa-Token?
源代码和安装说明在 GitHub 上:https://github.com/dromara/Sa-Token

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目