
Sa-Token 源码仓库目录全解析核心模块、整合层、插件体系与示例合集的代码地图【免费下载链接】Sa-Token✨ 开源、免费、一站式 Java 权限认证框架让鉴权变得简单、优雅—— 登录认证、权限认证、分布式 Session 会话、微服务网关鉴权、SSO 单点登录、OAuth2.0 统一认证、jwt 集成、API Key 秘钥授权、API 参数签名项目地址: https://gitcode.com/GitHub_Trending/sa/Sa-TokenSa-Token 是一个开源、免费的 Java 权限认证框架本仓库即其完整源码工程。本文以仓库目录为主线逐层拆解每一个模块的职责定位、依赖关系与典型用法帮助读者快速建立从目录到能力的源码导航读完本文你将掌握 Sa-Token 核心包与 SpringBoot/Solon/JFinal 等整合层、Redis/JSON/JWT/SSO/OAuth2 等插件层、几十个示例工程和测试工程的分布规律能够在阅读源码、调试问题、按需集成时精准定位到对应模块。一、仓库总览一个多模块 Maven 工程如何组织Sa-Token 采用标准的 Maven 多模块聚合工程结构顶级 pom.xml 通过modules声明了全部一级模块当前仓库快照版本为1.46.0由revision属性统一管理sa-token ├── sa-token-core // [核心] Sa-Token 核心模块 ├── sa-token-dependencies // [依赖] Sa-Token 依赖版本信息 ├── sa-token-special-dependencies // [依赖] Sa-Token 特殊依赖SpringBoot2/3/4 版本隔离 ├── sa-token-bom // [核心] Sa-Token bom 包 ├── sa-token-starter // [整合] Sa-Token 与其它框架整合 ├── sa-token-plugin // [插件] Sa-Token 插件合集 ├── sa-token-demo // [示例] Sa-Token 示例合集 ├── sa-token-testing // [测试] Sa-Token 测试合集 ├── sa-token-doc // [文档] Sa-Token 开发文档 ├── sa-token-doc-new // [文档] Sa-Token 新版开发文档站 ├── pom.xml // [依赖] 顶级 pom 文件 ├── LICENSE // 开源协议 ├── mvn clean.bat // 一键 mvn clean 核心包所有示例包 ├── mvn test.bat // 一键单元测试 ├── mvn-coverage.bat // 一键生成测试覆盖率 ├── preview-doc.bat // 一键预览开发文档 ├── preview-doc-new.bat // 一键预览新版开发文档 ├── update-log.md // 更新日志 └── README.md // 仓库自述文件顶层模块在逻辑上可以划分为四个层次核心层sa-token-core框架全部鉴权逻辑的所在地依赖管理层sa-token-dependencies、sa-token-special-dependencies、sa-token-bom负责统一版本号与依赖隔离适配层sa-token-starter框架整合与sa-token-plugin能力插件配套层sa-token-demo示例、sa-token-testing测试、sa-token-doc/sa-token-doc-new文档。需要说明的是原目录介绍文档中列出的MEMO内部备忘录、开发记录目录在当前仓库快照中未出现本仓库实际结构以 根目录清单 为准。二、依赖管理层版本号如何被统一管理1. sa-token-dependencies所有第三方依赖版本号集中地sa-token-dependencies是一个纯pom类型模块pom.xml其核心职责是集中定义所有第三方依赖版本号并放入dependencyManagement供全工程引用。在这里可以一次性看清 Sa-Token 的完整技术栈JSON 序列化jackson-databind 2.13.4.1、Jackson3tools.jackson.core、fastjson / fastjson2 2.0.64、Snack3、Snack4、Apache Fory JSONWeb 框架生态Solon、JFinal、Jboot、LoveQQ-Boot缓存/RedisRedisson 3.45.0、Redisx、Hutool Cache、Caffeine、commons-pool2RPC 与安全Dubbo、grpc-spring-boot-starter、jjwt、hutool-jwt测试工具链JUnit Jupiter、Mockito、jedis-mock内存版 Redis 模拟用于测试、slf4j-simple、snakeyaml。该模块还统一管理了sa-token-test-support、sa-token-json-test-common、sa-token-http-test-common、sa-token-redis-dao-test-common等测试公共包的版本。顶层 pom.xml 通过scopeimport/scope方式导入此模块的 dependencyManagement使版本定义向所有子模块传导。2. sa-token-special-dependenciesSpringBoot 2/3/4 版本隔离sa-token-special-dependenciespom.xml下按 SpringBoot 大版本拆分出三个子模块用于解决不同 SpringBoot 主版本间的依赖冲突sa-token-spring-boot2-dependenciessa-token-spring-boot3-dependenciessa-token-spring-boot4-dependencies这是 Sa-Token 能同时支持 SpringBoot 2/3/4 的关键工程手段把随主版本变化的依赖定义隔离在独立 POM 中各 starter 只需引用对应版本即可避免相互污染。3. sa-token-bom面向使用方的统一依赖清单sa-token-bompom.xml是发布到 Maven 中央仓库的 BOM 包面向框架使用者。它在dependencyManagement中列出了所有 Sa-Token 自研制品sa-token-core、全部 starter、全部 plugin并统一版本为${revision}因此使用方只需在项目中导入该 BOM即可省略所有 Sa-Token 依赖的版本号。仓库内专门提供了 sa-token-demo-bom-import 示例工程演示导入方式。三、核心层sa-token-core 的内部结构sa-token-core是整个框架的心脏不含任何 Web 容器耦合全部代码位于cn.dev33.satoken包下源码目录按功能划分为数十个包stp核心 API 层包括开发者最常使用的StpUtilStpUtil.java、StpLogic、StpInterface以及登录参数模型SaLoginModel/SaLoginConfig等dao数据持久层抽象定义SaTokenDao接口及 timedcache 定时缓存实现config全局配置SaTokenConfig对应application.yml中的sa-token配置项context上下文抽象层解耦不同 Web 容器对 Request/Response 的差异sessionSession 会话模型与存储listener全局事件监听器annotation与annotation/handlerSaCheckLogin、SaCheckPermission等注解及其处理器filter/router路由匹配、过滤器相关实现exceptionNotLoginException、NotPermissionException、NotRoleException等全套异常体系json/serializer序列化抽象与默认实现供插件按需替换strategy与fun策略扩展点与函数式接口是 Sa-Token 高度可定制的底座secure、same、temp、httpauth、log、application、model、util、error、plugin等分别承载安全工具TOTP 等、同源校验、临时 Token、HTTP Basic/Digest 认证、日志、应用信息、模型、工具类、错误码与插件机制。从源码结构看sa-token-core刻意保持零框架依赖所有对 SpringBoot、Servlet 的适配都下沉到sa-token-starter这保证了核心逻辑可被任意框架复用。核心模块自身也携带了 104 个测试文件测试目录直接以纯 Java 方式验证鉴权核心逻辑。四、整合层sa-token-starter 各子模块职责sa-token-starter目录承担与其它框架整合的职责按容器和框架分为三层1. Servlet 容器适配sa-token-servlet整合 Servlet 容器的实现类包javax 命名空间sa-token-jakarta-servlet整合 Jakarta-Servlet 容器的实现类包适配 SpringBoot 3/4 与 Tomcat 10。2. SpringBoot 集成 startersa-token-spring-boot-starter整合 SpringBoot2 的快速集成包开箱即用sa-token-spring-boot3-starter整合 SpringBoot3 的快速集成包sa-token-spring-boot4-starter整合 SpringBoot4 的快速集成包sa-token-spring-boot-webmvc-v3v4-commonSpringBoot WebMvc 公共包3/4sa-token-spring-boot-webmvc-reactor-v2v3v4-commonSpringBoot WebMvc Reactor 公共包2/3/4。3. 响应式Reactive / WebFlux支持sa-token-reactor-spring-boot-starter整合 SpringBoot2 Reactor 响应式编程sa-token-reactor-spring-boot3-starter整合 SpringBoot3 Reactorsa-token-reactor-spring-boot4-starter整合 SpringBoot4 Reactorsa-token-spring-boot-reactor-v3v4-commonSpringBoot Reactor 公共包3/4。4. 其它 Web 框架整合sa-token-solon-plugin整合 Solon 框架sa-token-jfinal-plugin整合 JFinal 框架sa-token-jboot-plugin整合 JBoot 框架sa-token-loveqq-boot-starter整合 LoveQQ-Boot 框架。选择原则很简单用哪个框架就引入对应的 starter 模块核心逻辑全部来自sa-token-corestarter 只负责把 Sa-Token 注册进对应框架的请求生命周期中。五、插件层sa-token-plugin 五大能力族sa-token-plugin目录承载框架的扩展能力按用途可归纳为五大族1. JSON 序列化插件任选其一引入针对不同 JSON 库提供统一接入仓库均提供对应示例与测试sa-token-jacksonJackson 2、sa-token-jackson3Jackson 3sa-token-fastjson、sa-token-fastjson2sa-token-fory-jsonApache Fory JSONsa-token-snack3、sa-token-snack4sa-token-serializer-features序列化实现的通用扩展包2. 缓存 / Redis 插件sa-token-redis-template整合 Spring Data RedisTemplatesa-token-redis-template-jdk-serializerRedisTemplate JDK 序列化算法sa-token-redis-jacksonRedisTemplate Jackson 序列化算法sa-token-redisson与sa-token-redisson-spring-boot-starter整合 Redissonsa-token-redisx整合 Noear Redisxsa-token-hutool-timed-cache、sa-token-caffeine基于内存的本地缓存插件sa-token-alone-redis、sa-token-alone-redisson、sa-token-alone-redis-by-spring-boot4独立 Redis 插件实现权限缓存与业务缓存分离。3. RPC 鉴权与状态传递sa-token-dubbo、sa-token-dubbo3Dubbo / Dubbo3 调用鉴权与登录状态传递sa-token-grpcgRPC 调用鉴权与状态传递。4. 登录认证与安全扩展sa-token-jwt基于 jjwt 的 JWT 登录认证sa-token-temp-jwt基于 jjwt 的临时 Tokensa-token-ssoSSO 单点登录sa-token-oauth2OAuth2.0 统一认证sa-token-apikeyAPI Key 秘钥授权sa-token-signAPI 参数签名sa-token-quick-login快速注入登录页插件。5. 模板引擎标签与 HTTP 客户端sa-token-thymeleaf、sa-token-freemarker为模板引擎提供 Sa-Token 自定义标签方言前端可直接用#标签做权限判断sa-token-spring-aopSpringAOP 注解鉴权增强sa-token-spring-elSpringEL 表达式注解鉴权sa-token-forest、sa-token-okhttps、sa-token-rest-template、sa-token-rest-client多种 HTTP 请求处理器接入。所有插件版本均被 sa-token-bom 统一管理用户无需手写版本号。六、示例层sa-token-demo 的导航价值sa-token-demo是最大的目录几乎为每一个插件和框架组合都提供了可运行的示例工程是照着抄的最佳参考。按主题分组如下Redis 集成类sa-token-demo-alone-redis、sa-token-demo-alone-redis-cluster集群模式、sa-token-demo-alone-redis-sb4、sa-token-demo-alone-redisson、sa-token-demo-alone-redisson-cluster、sa-token-demo-alone-redisson-sb3、sa-token-demo-alone-redisson-sb4、sa-token-demo-springboot-redis、sa-token-demo-springboot3-redis、sa-token-demo-springboot4-redis、sa-token-demo-springboot-redisson、sa-token-demo-solon-redisson。登录认证类sa-token-demo-jwtJWT 登录、sa-token-demo-quick-login与sa-token-demo-quick-login-sb3快速登录页、sa-token-demo-apikeyAPI Key、sa-token-demo-remember-me记住我模式含 page_project 前端 与 server 后端、sa-token-demo-device-lock设备锁登录含后端与 h5 前端。SSO 单点登录类sa-token-demo-sso下包含sa-token-demo-sso-server认证中心、模式一/二/三客户端sa-token-demo-sso1-client、sa-token-demo-sso2-client、sa-token-demo-sso3-client、SpringBoot4 版sa-token-demo-sso3-client--sb4、无 SDK 纯手动对接版sa-token-demo-sso3-client-nosdk、ReSdk 重写对接版sa-token-demo-sso3-client-resdk、匿名应用接入版sa-token-demo-sso3-client-anon以及前后端分离的 h5 / Vue2 / Vue3 前端工程Solon 版则统一放在sa-token-demo-sso-for-solon下。OAuth2 类sa-token-demo-oauth2下包含sa-token-demo-oauth2-server服务端、sa-token-demo-oauth2-client客户端及对应 h5 前端测试页。RPC 与异步类sa-token-demo-dubbo含 dubbo/dubbo3 的 consumer/provider 四端、sa-token-demo-grpcclient/server、sa-token-demo-async、sa-token-demo-sse。响应式与长连接类sa-token-demo-webflux、sa-token-demo-webflux-springboot3、sa-token-demo-webflux-springboot4、sa-token-demo-websocket、sa-token-demo-websocket-spring。模板引擎类sa-token-demo-thymeleaf、sa-token-demo-freemarker、sa-token-demo-beetl。框架集成类sa-token-demo-springboot、sa-token-demo-springboot-low-versionSpringBoot2 低版本、sa-token-demo-solon、sa-token-demo-jfinal、sa-token-demo-loveqq-boot、sa-token-demo-ssmSSM 传统整合。工程实践类sa-token-demo-case各模块综合示例、sa-token-demo-first-run源码首次运行引导强制引入 apikey、sso、oauth2、sign、jwt 等可选模块、sa-token-demo-bug-reproduceIssue/Bug 复现沙盒、sa-token-demo-json-typing-securityJSON 多态反序列化白名单回归Spring Boot Jackson与sa-token-demo-json-typing-security-for-solonSolon Snack4 版、sa-token-demo-test整合测试项目、sa-token-demo-bom-importBOM 导入示例、sa-token-demo-hutool-timed-cache与sa-token-demo-caffeine本地缓存示例。其中 sa-token-demo-first-run 对源码学习者尤其有价值它在本地install时强制把所有可选模块引入一次确保一键编译通过后再进入单模块学习。sa-token-demo/sa-token-demo-case则是阅读各模块 API 用法的速查工程。七、测试层sa-token-testing 与核心单测sa-token-core/src/test核心模块自带的 104 个单元测试文件零外部框架依赖即可运行sa-token-testing目录面向整合场景的测试合集包括sa-token-test-support测试支撑包、sa-token-json-test-common、sa-token-http-test-common、sa-token-redis-dao-test-common等公共测试夹具以及覆盖 SpringBoot2/3/4、Reactor、Dubbo/Dubbo3、gRPC、JFinal、Jboot、Solon、LoveQQ、OAuth2、SSO 的sa-token-integration-*系列、sa-token-alone-redis-template-boot2独立 Redis 测试和sa-token-coverage覆盖率汇总模块。关于测试执行顶级 pom.xml 中默认skipTeststrue且jacoco.skiptrue即日常mvn package/mvn install不会跑单测与覆盖率需要跑测试时使用mvn test -DskipTestsfalse需要覆盖率时运行仓库根目录的mvn-coverage.bat。全工程默认携带 JUnit Jupiterscopetest各子模块无需重复声明。八、文档层与根目录辅助文件sa-token-doc目录Sa-Token 开发文档主体按arch架构、use使用、up进阶、fun功能、plugin插件、ssoSSO、oauth2OAuth2、apiAPI、micro微服务、start开始、more更多等分区组织。其中 arch/data-structure.md 与本文同属架构系列建议配合阅读——它从token - loginId 映射等数据结构角度讲解框架内部存储设计sa-token-doc-new目录新版文档站工程docs/下为 Markdown 源文件public/下为静态资源根目录批处理脚本mvn clean.bat一键 clean 核心包与所有示例包、mvn test.bat一键单元测试、mvn-coverage.bat覆盖率、preview-doc.bat预览旧版文档、preview-doc-new.bat预览新版文档根目录其它文件README.md及多语言 README、LICENSEApache 2.0、SECURITY.md、update-log.md版本更新日志。九、生态仓库与延伸阅读在原文档末尾还列出了 Sa-Token 生态下的其它相关仓库可作为延伸学习资源均可通过 sa-tokens 组织检索到集成 Sa-Token 的优秀开源案例收集Awesome-Sa-Token、Sa-Token 的 Rust 与 Go 语言版本、Sa-Token 技术点学习笔记Sa-Token-Study、各种登录方式示例集合Sa-Token-Login-Demos、文档图片资源仓库sa-token-doc-big-file、第三方插件合集sa-token-three-plugin、跨域场景示例sa-token-demo-cross以及 Java 权限认证框架功能测试/对比/迁移项目auth-framework-function-test。回到本仓库建议的阅读路线是先用sa-token-demo-first-run跑通整个工程再以sa-token-demo-springboot为最小可运行样本观察 starter 的装配随后进入sa-token-core的stp、dao、config三个包理解核心鉴权模型最后按需深入sa-token-plugin与sa-token-testing。以目录为地图Sa-Token 的源码便不再庞杂。【免费下载链接】Sa-Token✨ 开源、免费、一站式 Java 权限认证框架让鉴权变得简单、优雅—— 登录认证、权限认证、分布式 Session 会话、微服务网关鉴权、SSO 单点登录、OAuth2.0 统一认证、jwt 集成、API Key 秘钥授权、API 参数签名项目地址: https://gitcode.com/GitHub_Trending/sa/Sa-Token创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考