Files
danyang-match/docs/Phase-02-V11-Recovery-Completion-Report-2026-09-10.md
T

55 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 02 Completion Report — 统一认证、RBAC、DataScope 与敏感访问
- 日期:2026-09-10
- 交付类型:内部迭代交付
- 项目类型:Web 管理系统 + 微信小程序后端
- 安全级别:普通商业项目(按公益婚恋敏感个人信息要求加强)
- 分支:`phase/02-rbac-datascope`
- 结论:**Phase 02 专项门禁通过;项目整体仍为 NO-GO,不自动进入 Phase 03。**
## 1. 测试范围
本阶段只验收统一身份主体、接口 Permission、服务 DataScope、敏感访问拒绝审计、管理端 Capability/权限入口控制及数据库迁移。性能、完整 UAT、生产发布和 Phase 03 以后业务不在本阶段范围。
## 2. 完成内容
1. 建立 `UserPrincipal`、`OperatorPrincipal` 与统一 JWT 认证上下文;Controller 不再自行解析 Authorization/JWT。
2. 删除旧 `PermissionFilter` 粗粒度实现;`/operator/**` 和 `/admin/**` 只做运营身份门禁,具体接口使用 `@PreAuthorize` 权限码。
3. 为不在 `/operator/**` 下的运营接口补齐方法权限,包括咨询、内容、服务预约、活动签到和红娘转介。
4. 实现并验证 Counselor Assigned Service、ServiceStationOperator 站点/任务范围、ContentEditor 零用户婚恋数据权限、组织关系不自动继承权限。
5. 权限拒绝写入审计;用户预约 `userId` 由 Principal 决定,修复可替他人创建/读取预约的 IDOR 风险。
6. 运营登录改为数据库密码散列校验,补充失败锁定、刷新和审计;移除硬编码测试密码通道。
7. 管理端路由、菜单和页面操作按服务端权限集合控制;前端隐藏仅作为体验层,后端仍强制校验。
8. 新增 V028/V029 前向迁移,补齐服务站数据范围及签到/协助登记权限。
## 3. 测试执行记录
| 测试项 | 结果 | 实测 |
|---|---|---|
| 后端编译 | 通过 | Maven `compile` exit 0 |
| Phase 02 专项/相关回归 | 通过 | 38 tests,0 failure,0 error,0 skipped |
| PostgreSQL 16 Flyway | 通过 | V001–V029 全部迁移成功,当前版本 V029 |
| 角色权限实库核对 | 通过 | counselor、counseling_manager、content_editor、service_station_operator 权限符合矩阵 |
| Admin TypeScript | 通过 | `npm run type-check` exit 0 |
| Admin Production Build | 通过 | `npm run build` exit 0;仅有既有大 chunk 警告 |
| Backend 全量回归 | 未全绿 | 277 tests:4 failures、8 errors、3 skipped |
专项用例覆盖正向授权、越权拒绝、行级范围、拒绝审计、Principal 注入、防止 Controller 回退解析 JWT、登录与健康检查。
## 4. 遗留缺陷与风险
| 等级 | 遗留项 | 处理建议 |
|---|---|---|
| 高 | `P0FixVerificationTest` 8 个错误:H2 测试环境缺少旧核心业务表 | 在后续基线修复阶段建立完整测试 schema;不得跳过或删除用例 |
| 中 | `MigrationValidationTest` 2 个旧文本断言与真实 V001–V029 迁移结构不一致 | 独立校正旧静态断言;真实 PostgreSQL Flyway 已通过 |
| 中 | `PermissionMatrixTest` 1 个旧平台管理员权限数量断言与其矩阵定义冲突 | 在后续权限测试基线任务中统一期望 |
| 中 | `SecurityTests` 1 个旧 XSS 输出编码断言未通过 | 后续按实际输出边界统一编码策略和断言 |
| 低 | Admin 主包约 1.26 MB,Vite 给出 chunk 警告 | 非 Phase 02 阻断;后续按页面拆包 |
以上遗留项未被隐藏,因此项目总体继续 NO-GO;它们不否定本阶段 RBAC/DataScope 专项门禁结果。
## 5. 验收结论
Phase 02 的代码、数据库、专项测试和管理端构建达到本阶段验收条件。正式客户 UAT、性能、安全渗透、备份恢复、部署演练和签字材料尚未执行,不得据此宣称 V1.1 可上线。
**下一步门禁:等待用户明确确认后,才可进入 Phase 03。**