a2ae74d582
- Backend: auth refresh reuse, schedule/retry/sync/agent/files fixes - Frontend: push WS, files ETag browse, vite build assets - Docs: audit/changelog, production deploy gate, bug scan registry B7-77 - Deploy: deploy-production.sh, prune assets, gate logs
1.3 KiB
1.3 KiB
Changelog — BUG Batch 6:Refresh 重用 / 文件浏览 ETag(2026-06-04)
摘要
补齐刷新令牌重用检测(吊销全部会话)、区分 Redis 故障与无效令牌,并修复文件管理器在本地缓存命中时跳过 ETag 校验的问题。
动机
- 已轮换的 refresh token 被重放时,原逻辑仅返回 401,不提升
token_version,无法踢掉攻击者仍有效的新会话。 - Redis 短暂不可用时,合法用户 refresh 被误判为无效令牌。
- 远程目录变更后(含 Batch 5 服务端 ETag 失效),前端 5s 内仍可能只读本地缓存、不发
If-None-Match。
变更
| 文件 | 说明 |
|---|---|
server/application/services/auth_service.py |
_refresh_token_membership、_handle_refresh_token_reuse |
frontend/src/composables/files/useFilesBrowse.ts |
缓存仅乐观展示,始终条件 GET |
tests/test_auth_refresh_reuse.py |
重用检测与 Redis 不可用单测 |
docs/reports/audit-bug-line-walk-2026-06-04-batch6.md |
BUG Batch 6 报告 |
迁移 / 重启
- 需重启
nexus;前端需重新构建部署。
验证
ruff check server/application/services/auth_service.py
pytest tests/test_auth_refresh_reuse.py tests/ -q
cd frontend && npm run type-check
关联
- Batch 5:
docs/changelog/2026-06-04-bug-batch5-agent-etag.md