
Sa-Token 是一个轻量级Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。

Sa-Token 旨在以简单、优雅的方式完成系统的权限认证部分,以登录认证为例,你只需要:
// 会话登录,参数填登录人的账号id
StpUtil.login(10001);无需实现任何接口,无需创建任何配置文件,只需要这一句静态代码的调用,便可以完成会话登录认证。
如果一个接口需要登录后才能访问,我们只需调用以下代码:
// 校验当前客户端是否已经登录,如果未登录则抛出 `NotLoginException` 异常
StpUtil.checkLogin();在 Sa-Token 中,大多数功能都可以一行代码解决:
// 将账号id为 10077 的会话踢下线
StpUtil.kickout(10077);// 注解鉴权:只有具备 `user:add` 权限的会话才可以进入方法
@SaCheckPermission("user:add")
public String insert(SysUser user) {
// ...
return "用户增加";
}注册路由拦截器,根据不同路由模块进行鉴权:
// 根据路由划分模块,不同模块不同鉴权
registry.addInterceptor(new SaInterceptor(handler -> {
// 访问/user/** 模块需要具备 user 权限
SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
// 访问/admin/** 模块需要具备 admin 权限
SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
// 访问/goods/** 模块需要具备 goods 权限
SaRouter.match("/goods/**", r -> StpUtil.checkPermission("goods"));
// 访问/orders/** 模块需要具备 orders 权限
SaRouter.match("/orders/**", r -> StpUtil.checkPermission("orders"));
// 访问/notice/** 模块需要具备 notice 权限
SaRouter.match("/notice/**", r -> StpUtil.checkPermission("notice"));
// 更多模块...
})).addPathPatterns("/**");当你受够 Shiro、SpringSecurity 等框架的复杂配置和繁琐使用时,不妨试试 Sa-Token,或许它能给你带来不一样的体验。
亲身体验之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!
最后,Sa-Token 的官网文档地址是:https://sa-token.cc/doc.html#/ ,感兴趣的朋友可以去看看。
附上 Sa-Token 的功能一览表:
Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。
功能模块 | 功能点 | 说明 |
|---|---|---|
登录认证 | 单端登录 | 同一账号同一时间只允许一个终端在线 |
多端登录 | 同一账号支持多个终端同时在线 | |
同端互斥登录 | 同类型终端互斥(如两个手机不能同时在线) | |
七天内免登录 | 支持长期保持登录状态 | |
Session 会话 | 全端共享 Session | 多终端共享会话数据 |
单端独享 Session | 每个终端拥有独立 Session | |
自定义 Session | 支持自定义 Session 类型 | |
会话存取值 | 提供便捷的 set / get 操作 | |
分布式会话 | 分布式 Session | 提供共享数据中心方案 |
持久层扩展 | Redis 集成 | 服务重启后数据不丢失 |
独立 Redis | 权限缓存与业务缓存隔离 |
功能模块 | 功能点 | 说明 |
|---|---|---|
权限认证 | 权限认证 | 基于权限码的访问控制 |
角色认证 | 基于角色的访问控制 | |
会话二级认证 | 登录后再次认证 | |
注解式鉴权 | 注解鉴权 | 通过注解将鉴权与业务解耦 |
路由拦截鉴权 | 路由鉴权 | 支持 RESTful 风格 |
微服务鉴权 | 网关鉴权 | 适配 Gateway、Zuul、ShenYu |
RPC 鉴权 | 防止服务间裸调用 | |
临时 Token | 临时授权 | 解决短时间 Token 授权问题 |
参数签名 | 接口签名 | 防参数篡改、防请求重放 |
功能结构图:

如果这篇文章帮到了你,不妨点个分享给同样需要的朋友吧! 你的每一次支持,都是我持续创作的动力!💪
往期推荐:
序号 | 文章标题 | 链接 |
|---|---|---|
1 | MCP协议爆火揭秘 | 查看详情 |
2 | 轻松配置Cursor玩转MCP | 查看详情 |
3 | Browser-Tool 前端开发神器 | 查看详情 |
4 | AI编码焕新:用Context7 | 查看详情 |
5 | NotebookLM:靠谱知识库 | 查看详情 |
6 | Spring AI 玩转多轮对话 | 查看详情 |
7 | Cursor生成UI,加一步封神 | 查看详情 |
8 | 神器!免费替代Postman | 查看详情 |