返回资源中心

sa-token

框架库
权限认证
1 次浏览
0 个赞
Java权限认证安全

资源描述

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 讨论区及微信公众号技术分享,已广泛应用于电商、政务、教育、物联网等多个行业生产环境