|
|
@@ -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 环境。
|