Просмотр исходного кода

docs(deploy): 0befb7671 部署回执 testing(SEC-20261031-01 安全修复已含于 d1096b251,JAR/进程/HTTP 行为核实通过)

zxyj-langgraph 1 час назад
Родитель
Сommit
97dc12208b
1 измененных файлов с 45 добавлено и 0 удалено
  1. 45 0
      docs/tdd/orchestration/report-deploy-2026-11-13-0befb7671.md

+ 45 - 0
docs/tdd/orchestration/report-deploy-2026-11-13-0befb7671.md

@@ -0,0 +1,45 @@
+# 部署回执:0befb7671 → testing(2026-11-13 22:xx)
+
+## 结论
+
+**目标提交 `0befb7671ec1694e4e53f70814b26141d362acf7`(SEC-20261031-01 安全契约缺口修复:
+switch-role 角色白名单 + member/list 开放端点 + 上传 PDF 类型校验 + 鉴权统一)的改动已真实运行在 testing 环境。**
+
+testing 当前线上版本为 **`d1096b251be7cf3782e6131daadf1bf82c52e245`**(部署链路于 2026-11-13
+22:05:29 写入 state),其纯净构建源为 `d1096b251`。`git merge-base --is-ancestor 0befb7671 d1096b251`
+→ 成立,即目标提交的全部改动已随该轮构建真实打进线上 JAR 并通过健康检查,**无需降级重部署**。
+
+## 证据
+
+| 项 | 值 |
+|----|----|
+| 目标提交 | `0befb7671ec1694e4e53f70814b26141d362acf7`(SEC-20261031-01:角色切换白名单 / 开放端点 401 / PDF 类型校验 / 鉴权统一) |
+| 线上 commit(state) | `d1096b251be7cf3782e6131daadf1bf82c52e245`(22:05:29 写入 state,auto-bump 产物;部署链 script:`/home/iwt/cfc-deploy-251.sh`) |
+| 构建源 commit | `d1096b251` |
+| 祖先关系 | `git merge-base --is-ancestor 0befb7671 d1096b251` → 成立(目标改动已包含在当前线上代码中) |
+| 源码一致性 | 6 个改动文件在 HEAD 均保留 SEC-20261031-01 代码且叠加后续加固,无回退:`UserService.switchRoleForLogin`(`isLoginRole` 白名单 parent/child/teacher,行 677-688)、`JwtInterceptor.LOGIN_REQUIRED_PATHS`(5 条新路径,行 97-107)、`FamilyMembersController.listMembers`(`userId<=0` → 401,行 69-73)、`AuthController`/`FamilyUserController`(`userId<=0` → 401)、`AssessmentReportController`(`isPdf` 校验 + 415,行 117-124) |
+| JAR 内容校验 | 线上 JAR(md5 `2ae2df8a155ea9d6c08aa59a82bcbf68`,与 state `backend_jar_md5` 一致)内 `JwtInterceptor.class` 含 5 条新路径;`AssessmentReportController.class` 含 `isPdf`/`application/pdf`/415 |
+| 部署时间轴 | 22:04:22 纯净构建 JAR(commit 391742c2d → auto-bump d1096b251)→ 22:05:29 state 写入 d1096b251 |
+| 部署 state | `/home/iwt/.cfc-deploy-state`: `last_commit=d1096b251...` `backend_jar_md5=2ae2df8a155ea9d6c08aa59a82bcbf68` |
+| 运行进程 | PID 647007,`java -Xms512m -Xmx1024m -jar /sc-data/springboot/cfc/cfc-backend-1.0.0.jar`,启动于 22:04 |
+
+## 健康回执(回执出具时直连探测)
+
+| 目标 | 探测 | 结果 |
+|------|------|------|
+| 后端(部署基线) | `POST http://localhost:9082/api/admin/foods/list` | 401(无 token 预期)✓ |
+| 登录端点 | `POST http://localhost:9082/api/admin-auth/login` | 200 ✓ |
+| SEC-20261031-01 生效(无 token) | `POST http://localhost:9082/api/auth/switch-role` | 401 ✓(原匿名放行 → 现在直接 401) |
+| SEC-20261031-01 生效(无 token) | `POST http://localhost:9082/api/family/member/list` | 401 ✓(原开放端点 → 现在必须登录) |
+| 管理端 | `http://localhost/admin/`(Host: cfc.iwintrue.com) | 200 ✓ |
+| 小程序 H5 | `http://localhost/frontend/`(Host: cfc.iwintrue.com) | 200 ✓ |
+
+## 说明
+
+- 按编排要求,本次**未创建/修改/写入** `.workbuddy/tasks.json`,未写 `last_deployed`;
+  `--deploy-done testing --commit d1096b251`(实际部署成功的 commit hash)由编排侧/负责人在
+  **主分支目录**统一落盘。
+- 部署链路:`/home/iwt/cfc-deploy-251.sh`(origin/cfclub 更新检测 → 纯净 worktree 构建 →
+  JAR 校验 → 停旧进程 → 装新 JAR → 启动健康检查 → 前端/H5 产物部署 → 最终验证)。
+- 目标 `0befb7671` 为**后端**安全修复,已包含在当前线上版本 `d1096b251` 中,
+  其代码已通过 JAR 字节码验证、HTTP 行为探活,并运行在 testing 环境。