Files
Nexus/docs/changelog/2026-06-04-bug-batch6-auth-files-etag.md
T
2026-07-08 22:31:31 +08:00

1.3 KiB
Raw Blame History

Changelog — BUG Batch 6Refresh 重用 / 文件浏览 ETag2026-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 5docs/changelog/2026-06-04-bug-batch5-agent-etag.md