135 lines
7.4 KiB
Markdown
135 lines
7.4 KiB
Markdown
# apes-Authon-history — 剥离历史与源码分析归档
|
||
|
||
> 本仓库归档了 apes-Authon 账权独立服务平台从单体应用中剥离的完整过程、分析报告和方案文档。
|
||
> 供源码更新时参考,持续优化前后端代码和文档。
|
||
|
||
## 仓库定位
|
||
|
||
| 仓库 | 说明 | 地址 |
|
||
|------|------|------|
|
||
| apes-Authon-Server | 后端账权服务 | https://gitea.apescale.com/apes-Arise/apes-Authon-Server |
|
||
| apes-Authon-Web | 前端账权管理 | https://gitea.apescale.com/apes-Arise/apes-Authon-Web |
|
||
| **apes-Authon-history** | **本仓库 — 剥离历史与分析归档** | https://gitea.apescale.com/apes-Arise/apes-Authon-history |
|
||
| apes-Authdata | 源码归档(完整单体应用,供抽取参考) | https://gitea.apescale.com/apes-Arise/apes-Authdata |
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
apes-Authon-history/
|
||
├── README.md # 本文件
|
||
├── docs/ # 源码分析与方案文档
|
||
│ ├── saas-service深度分析报告.md # 后端单体应用深度分析(33000 字)
|
||
│ ├── 代码深度解析与分析过程.md # 代码解析过程记录(27000 字)
|
||
│ ├── 账权平台-项目说明书.html # 原项目完整说明书(HTML)
|
||
│ └── 账权模块独立服务化方案.html # 独立服务化可行性分析与方案(HTML)
|
||
├── backend/ # 后端剥离文档
|
||
│ └── 账权模块提取说明.md # 提取原则、文件清单、耦合度验证、路线图
|
||
└── frontend/ # 前端剥离文档
|
||
├── apes-Authon-Web-剥离方案.md # 剥离方案(计划文档)
|
||
├── apes-Authon-Web-剥离方案.html # 剥离方案(HTML 版)
|
||
└── 剥离历史与说明.md # 剥离执行记录、变更明细、框架修改说明
|
||
```
|
||
|
||
## 文档索引
|
||
|
||
### 源码分析
|
||
|
||
| 文档 | 内容概述 |
|
||
|------|---------|
|
||
| [saas-service深度分析报告](docs/saas-service深度分析报告.md) | 后端单体应用的完整深度分析:项目结构、技术栈、核心模块(认证/授权/多租户/SSO/数据同步/LLM)、数据库设计、API 清单、配置体系 |
|
||
| [代码深度解析与分析过程](docs/代码深度解析与分析过程.md) | 代码解析过程记录:AuthContext 工作机制、@Login AOP 切面、多租户数据源切换、伙伴云 SSO 集成、LLM Agent 架构 |
|
||
| [账权平台-项目说明书](docs/账权平台-项目说明书.html) | 原项目说明书(HTML 格式):功能模块、技术架构、部署方式、数据库 ER 图 |
|
||
| [账权模块独立服务化方案](docs/账权模块独立服务化方案.html) | 独立服务化可行性分析:耦合度评估、剥离策略、技术路线、风险评估 |
|
||
|
||
### 后端剥离
|
||
|
||
| 文档 | 内容概述 |
|
||
|------|---------|
|
||
| [账权模块提取说明](backend/账权模块提取说明.md) | 提取原则(纯账权/零业务/保留包名/保留依赖)、124 个文件清单(11 Controller + 23 Entity + 7 Service + 23 Mapper)、外部依赖分析、耦合度验证结论、后续路线图 |
|
||
|
||
### 前端剥离
|
||
|
||
| 文档 | 内容概述 |
|
||
|------|---------|
|
||
| [apes-Authon-Web-剥离方案](frontend/apes-Authon-Web-剥离方案.md) | 剥离前的计划文档:保留/删除/修改清单、页面耦合度分析、框架文件修改方案 |
|
||
| [apes-Authon-Web-剥离方案](frontend/apes-Authon-Web-剥离方案.html) | 同上(HTML 格式) |
|
||
| [剥离历史与说明](frontend/剥离历史与说明.md) | 剥离执行记录:176 文件变更(+222/-60093)、11 个框架文件修改详情、业务引用清理表、构建验证结果 |
|
||
|
||
## 剥离概述
|
||
|
||
### 后端 (apes-Authon-Server)
|
||
|
||
从 `saas-service` 单体应用中提取纯净账权模块,经过 4 个阶段完成:
|
||
|
||
| 阶段 | 目标 | 关键工作 |
|
||
|------|------|---------|
|
||
| Phase 1 | apes-commons 内联 | 反推 8 个核心类(AuthContext / @Login / LoginAspect / Res / DbEntity 等),移除外部 JAR 依赖 |
|
||
| Phase 2 | 包名重构 | `cn.apes.cloud` → `cn.apes.authon` 全局包名重构,零残留 |
|
||
| Phase 3 | 编译验证 | 124 个源文件编译通过,Lombok 1.18.40 + compiler-plugin 3.13.0 兼容 Java 24 |
|
||
| Phase 4 | 提交推送 | 最终版本推送到 Gitea |
|
||
|
||
**提取结果**:11 Controller + 23 Entity + 12 DTO + 3 VO + 7 Service + 18 ServiceImpl + 23 Mapper + 5 Config + 1 Filter + 2 Util + 8 commons 内联 = 124 个 Java 文件
|
||
|
||
**耦合度验证**:
|
||
- 业务 Service → 账权 Service 直接调用:**0 个**
|
||
- 业务 Controller → 账权 Controller 直接调用:**0 个**
|
||
- 账权 Service → 业务 Mapper 直接调用:**0 个**
|
||
- 唯一交叉引用:`CustomerInfoServiceImpl` → huoban DTO 包(11 个纯 DTO,无业务逻辑)
|
||
|
||
### 前端 (apes-Authon-Web)
|
||
|
||
从 `saas-web` 单体前端中剥离纯净账权页面:
|
||
|
||
| 指标 | 数值 |
|
||
|------|------|
|
||
| 保留页面 | 40 个(24 账权 + 9 系统配置 + 7 AI 工具) |
|
||
| 删除页面 | ~82 个业务页面 |
|
||
| 代码变更 | +222 / -60093(净减约 6 万行) |
|
||
| 修改框架文件 | 11 个 |
|
||
| 构建状态 | 通过(`npm run build:prod`) |
|
||
|
||
## 如何使用本仓库
|
||
|
||
### 场景 1:源码更新后同步优化
|
||
|
||
当源码(单体应用)有更新时,按以下流程操作:
|
||
|
||
1. **分析变更**:对比源码最新版本与本仓库归档的分析文档,识别新增/修改的账权相关代码
|
||
2. **评估影响**:参照 [账权模块提取说明](backend/账权模块提取说明.md) 中的提取原则和文件清单,判断变更是否属于账权范畴
|
||
3. **同步代码**:将确认的变更同步到 [apes-Authon-Server](https://gitea.apescale.com/apes-Arise/apes-Authon-Server) 或 [apes-Authon-Web](https://gitea.apescale.com/apes-Arise/apes-Authon-Web)
|
||
4. **更新文档**:如有结构性变更,更新本仓库的分析文档
|
||
|
||
### 场景 2:理解架构设计
|
||
|
||
新开发者可通过以下顺序阅读文档快速理解系统:
|
||
|
||
1. [账权平台-项目说明书](docs/账权平台-项目说明书.html) — 了解原项目全貌
|
||
2. [saas-service深度分析报告](docs/saas-service深度分析报告.md) — 理解后端架构
|
||
3. [账权模块独立服务化方案](docs/账权模块独立服务化方案.html) — 理解为什么要剥离
|
||
4. [账权模块提取说明](backend/账权模块提取说明.md) — 理解后端怎么剥离的
|
||
5. [前端剥离方案](frontend/apes-Authon-Web-剥离方案.md) — 理解前端怎么剥离的
|
||
6. [剥离历史与说明](frontend/剥离历史与说明.md) — 理解前端具体改了什么
|
||
|
||
### 场景 3:扩展新模块
|
||
|
||
参照 [代码深度解析与分析过程](docs/代码深度解析与分析过程.md) 中的架构说明,理解以下核心机制后再进行扩展:
|
||
|
||
- **AuthContext + @Login AOP**:认证上下文的传递机制
|
||
- **@TenantSource 动态数据源**:多租户数据源切换
|
||
- **SSO 集成**:伙伴云单点登录的 Token 交换流程
|
||
- **动态路由**:前端菜单 → 路由 → 组件的映射机制
|
||
|
||
## 后续路线图
|
||
|
||
| 阶段 | 目标 | 状态 |
|
||
|------|------|------|
|
||
| Phase 5A | AI 助手/LLM 模块后端提取(~54 Java 文件) | 待办 |
|
||
| Phase 5B | 系统配置页面补充 | 基本完成 |
|
||
| Phase 5C | 伙伴云表单配置模块提取 | 待办 |
|
||
| Phase 6 | SDK 化 — AuthContext 转为远程可调用 SDK | 待设计 |
|
||
| Phase 7 | 网关集成 — API 网关注入请求头替代 ThreadLocal | 待设计 |
|
||
|
||
## License
|
||
|
||
MIT
|