status: apply created: 2026-07-27
| 项目 | 值 |
|---|---|
| JUnit | JUnit 5 / AssertJ |
| Mock | Mockito |
| 前端 | Vite production build,Node 20.19.0 |
| 数据库 | SQL 静态合同,不执行本地真实迁移 |
| 场景 | 输入 | 预期 |
|---|---|---|
| 新摘要 | 至少 16 字符且 UTF-8 不超过 72 字节 | 输出 {bcrypt},不包含原文 |
| 摘要匹配 | 正确/错误 Secret | true/false |
| 损坏摘要 | 未知标记、截断 BCrypt | 失败关闭,不降级明文 |
| 遗留明文 | 正确/错误 Secret | 常量时间 true/false,并标记需要升级 |
| 场景 | 预期 |
|---|---|
| 创建 public | appSecret=null |
| 创建 confidential 无 Secret | 拒绝且不写库 |
| 更新 confidential 空 Secret | 保留原摘要 |
| 更新 confidential 新 Secret | 写新摘要并清缓存 |
| 切换 public | 清空存储值并清缓存 |
| 并发元数据更新 | 空 Secret 不写存储列,不能恢复轮换前摘要 |
| Secret CAS 失败 | 整次更新失败并回滚,不接受静默覆盖 |
| 遗留明文登录 | 条件更新成功后清缓存;并发失败不覆盖新值 |
| 轮换缓存竞态 | 认证配置绕过通用缓存,旧缓存值和并发回填均不能参与认证 |
SystemAuthServiceImpl public 分支不要求 Secret,但仍匹配 AppId;confidential 分支必须调用 Secret 校验。IClientService#validateAppSecret。id + storedSecret 条件更新。/auth/login 和密码类入口由操作日志切面硬排除;Mapper/管理 VO 不返回存储值。SysClientMapper.xml 使用显式 resultMap,ipWhitelist 绑定 JacksonTypeHandler。/auth/online/** 的动态 API 排除不能绕过登录,所有接口具有独立权限;/test 不存在。token_value,Controller/VO 和 userTokens 兼容路径只暴露会话 ID。.env.development/.production 不存在 VITE_APP_SECRET。.env/.env.* 不存在 VITE_CLIENT_SECRET、VITE_APP_SECRET 或引导浏览器配置 AppSecret 的说明。VITE_APP_SECRET。sys_client_auth_method 字典读取选项,Secret 仅在 confidential 时显示。| 时间 | 范围 | 命令 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-07-26 | Captcha System 插件 | 4 条目标测试 | 通过 | 复用验证码变更基线 |
| 2026-07-26 | Crypto Admin/Report | 44 模块 package、59 条隔离测试 | 通过 | 当前工作区存在未提交 crypto 改动 |
| 时间 | 变更范围 | 必跑项 | 实际命令 | 结果 | 跳过/警告 |
|---|---|---|---|---|---|
| 2026-07-27 | Client credential | 目标测试、System package、UI build、静态扫描 | 见执行日志 | 通过 | 真实数据库迁移与登录 E2E 跳过 |
| 2026-07-27 | Review fix | legacy-read 迁移幂等、CAS 失败分支 | System 模块 4 个目标测试类 | 20 条通过 | Reactor 测试被无关 Datascope 测试依赖缺口阻断,改用模块定向执行 |
| 2026-07-27 | Final review fix | 日志硬排除、认证配置缓存旁路、环境/Mapper/响应合同 | System 模块 5 个目标测试类、UI build | 24 条通过;8727 modules 构建成功 | 真实 Redis/MySQL 和登录 E2E 仍为部署门禁 |
| 2026-07-27 | Third review fix | Secret CAS、Token 日志边界、Mapper JSON resultMap、.env.test 合同 |
System 模块 5 个目标测试类、System Reactor、XML/静态扫描 | 26 条通过;25 模块构建成功;扫描无命中 | 首次模块测试受旧 Core 快照阻断,刷新 Reactor 后通过;真实 Redis/MySQL/E2E 未执行 |
| 2026-07-27 | Critical/Important fix | 在线鉴权/租户边界、会话 ID 响应、单 SQL 双字段 CAS、Token 日志 | Core/Excel/System 三模块 Reactor 内 7 个目标测试类;目标 ESLint/XML/静态扫描 | 36 条通过;0 失败/错误/跳过;静态检查通过 | 未执行真实 Redis/MySQL/E2E、全量构建或前端 build |
execution-log.md:回填命令、测试数量、警告和服务状态。