3.8 KiB
3.8 KiB
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. 完成内容
- 建立
UserPrincipal、OperatorPrincipal与统一 JWT 认证上下文;Controller 不再自行解析 Authorization/JWT。 - 删除旧
PermissionFilter粗粒度实现;/operator/**和/admin/**只做运营身份门禁,具体接口使用@PreAuthorize权限码。 - 为不在
/operator/**下的运营接口补齐方法权限,包括咨询、内容、服务预约、活动签到和红娘转介。 - 实现并验证 Counselor Assigned Service、ServiceStationOperator 站点/任务范围、ContentEditor 零用户婚恋数据权限、组织关系不自动继承权限。
- 权限拒绝写入审计;用户预约
userId由 Principal 决定,修复可替他人创建/读取预约的 IDOR 风险。 - 运营登录改为数据库密码散列校验,补充失败锁定、刷新和审计;移除硬编码测试密码通道。
- 管理端路由、菜单和页面操作按服务端权限集合控制;前端隐藏仅作为体验层,后端仍强制校验。
- 新增 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。