fix: harden avatar upload path and sync review truth
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
- 浏览器级真实 E2E 已闭环
|
||||
|
||||
**当前活跃阻塞:**
|
||||
- 无新的功能性阻塞;剩余工作主要是提交边界整理与文档/工作树卫生收口
|
||||
- 无新的功能性阻塞;review 报告已完成真相校准,剩余工作以维护性尾项(如 raw SQL / 前端状态收敛 / 类型真相)和提交边界整理为主
|
||||
|
||||
### 当前可诚实复用的一句话状态
|
||||
|
||||
@@ -1206,6 +1206,25 @@
|
||||
- 前端 `window.alert/confirm/prompt/open` 保护链路已确认存在且有测试覆盖:
|
||||
- [`frontend/admin/src/app/bootstrap/installWindowGuards.ts`](/D:/project/frontend/admin/src/app/bootstrap/installWindowGuards.ts)
|
||||
|
||||
## 2026-05-28 review 后续修复补充
|
||||
|
||||
- 修复 `internal/api/middleware/ratelimit.go` 的真实运行时缺陷:
|
||||
- 旧实现按 endpoint 共享单一内存桶,导致同一路由上的所有用户共用限流额度,存在全局误伤。
|
||||
- 旧实现也缺少历史 client limiter 的空闲清理策略,长期运行下存在条目累积风险。
|
||||
- 新实现改为按 `endpoint + user_id/IP` 分桶,并在访问路径上按 TTL 清理空闲 limiter 条目。
|
||||
- 补齐 handler context 类型守卫:`SSOHandler`、`WebhookHandler` 不再直接做 `user_id.(int64)` / `username.(string)` 断言,异常 context 会稳定返回 `401` 而不是 panic。
|
||||
- 新增回归测试覆盖:
|
||||
- 不同 IP 的登录限流互不影响
|
||||
- 共享 IP 下不同 `user_id` 的 API 限流互不影响
|
||||
- 空闲 limiter 条目会被回收
|
||||
- `SSOHandler` / `WebhookHandler` 非法 context 类型返回 `401`
|
||||
- 本轮后端验证已执行通过:
|
||||
- `go test ./internal/api/middleware -count=1`
|
||||
- `go test ./internal/api/handler -count=1`
|
||||
- `go test ./... -count=1`
|
||||
- `go vet ./...`
|
||||
- `go build ./cmd/server`
|
||||
|
||||
## 当前运行时真实能力
|
||||
|
||||
- 密码登录:启用
|
||||
|
||||
Reference in New Issue
Block a user