资源描述
sa-token 是一款轻量、易用、高扩展性的 Java 权限认证框架,专为 Spring Boot / Spring MVC 等 Java Web 应用设计。支持登录认证、权限校验、会话管理、单点登录(SSO)、OAuth2 集成等核心能力,零侵入式集成,无 XML 配置,API 简洁语义化。适用于中后台系统、SaaS 多租户平台、微服务权限网关等场景,显著降低安全模块开发与维护成本。
详细内容
# sa-token —— 轻量级 Java 权限认证框架
## 框架简介与定位
sa-token 是一个面向 Java 生态(尤其 Spring Boot)的现代化权限认证框架,定位为「开箱即用、低学习成本、高可定制性」的安全中间件。它不依赖 Servlet 容器特定 API,兼容 Spring Boot 2.x/3.x、Spring MVC、WebFlux 及非 Spring 环境(如 JFinal、Jetty 原生),以注解驱动 + Fluent API 为核心设计理念,致力于替代传统 Shiro/Spring Security 中繁重配置与复杂抽象,让权限控制回归业务本质。
## 核心特性
- ✅ **极简集成**:仅需引入 Maven 依赖 + `@SaIgnore` 或 `@SaCheckLogin` 注解,5 分钟完成基础认证接入
- ✅ **多模式认证**:支持账号密码登录、Token 认证、JWT 模式、RememberMe、微信小程序登录等多种认证方式
- ✅ **灵活权限控制**:细粒度支持角色权限(`@SaCheckRole`)、权限码校验(`@SaCheckPermission`)、自定义授权逻辑(`SaProcessor` 扩展点)
- ✅ **会话与 Token 管理**:内置 Token 续期、强制下线、同端互踢、多端登录、会话持久化(Redis 支持)等企业级能力
- ✅ **单点登录(SSO)与 OAuth2 支持**:提供标准 SSO 服务端/客户端模块,可快速构建统一认证中心;内置 OAuth2 授权码模式适配器
## 适用场景
- 企业级中后台管理系统(RBAC 权限模型快速落地)
- SaaS 多租户平台(支持 tenantId 隔离的会话与权限上下文)
- 微服务架构中的网关层统一鉴权(配合 Spring Cloud Gateway 或 Nacos 集成)
- 小程序/H5/APP 多端登录态统一管理
- 需要快速交付且对 Spring Security 学习成本敏感的中小型项目
## 快速入门步骤
1. **添加依赖**(Maven):
```xml
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.39.0</version> <!-- 建议使用最新稳定版 -->
</dependency>
```
2. **配置 application.yml**(可选,默认内存模式):
```yaml
sa-token:
token-name: satoken
timeout: 2592000 # 30天,单位:秒
is-concurrent: true
```
3. **编写登录接口示例**:
```java
@RestController
public class AuthController {
@PostMapping("/login")
public Result login(@RequestParam String account, @RequestParam String password) {
// 此处校验账号密码(对接 DB/Redis 等)
if ("admin".equals(account) && "123456".equals(password)) {
StpUtil.login(10001); // 登录并分配账号ID
return Result.ok().set("token", StpUtil.getTokenValue());
}
return Result.err("账号或密码错误");
}
}
```
4. **保护受控接口**:
```java
@GetMapping("/user/info")
@SaCheckLogin // 拦截未登录请求
public Result userInfo() {
return Result.ok().set("id", StpUtil.getLoginIdAsInt());
}
```
## 生态与社区
- 官方文档完善,覆盖 API 手册、实战教程、常见问题(FAQ)、源码解析,地址:[http://sa-token.dev33.cn/](http://sa-token.dev33.cn/)
- GitHub 开源([github.com/dromara/sa-token](https://github.com/dromara/sa-token)),Apache License 2.0 协议,持续迭代,Issue 响应及时
- 社区活跃,提供 QQ 群、Gitee 讨论区及微信公众号技术分享,已广泛应用于电商、政务、教育、物联网等多个行业生产环境