编号:H-06 严重级:low 工作线:管理后端(internal/admin) 来源:审查 A-16、A-27 依赖:无 被依赖:无
采用审查 A-16、A-27 的方案:
LockAdminIP
admin_sessions
internal/admin/login.go、store.go。
internal/admin/login.go
store.go
与 W-01 的 401 自动登出互相排除:改密接口旧密码错误返回 401 时不触发自动登出。命令行 set-password 作废会话在 D-05 处理。
set-password
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
login.go:110-140
locks
26-31
store.go:42-65,74-79
login.go:152-155
internal/admin/store.go
login.go
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 1cb562f fix: 改密计入锁定并清理过期管理员会话 (#49)。
0c9b459
1cb562f
No dependencies set.
The note is not visible to the blocked user.
编号:H-06 严重级:low 工作线:管理后端(internal/admin) 来源:审查 A-16、A-27
依赖:无 被依赖:无
结论与统一方案
采用审查 A-16、A-27 的方案:
LockAdminIP,失败时计数,锁定时返回 429,成功后清零。admin_sessions行。改动文件
internal/admin/login.go、store.go。与其他问题的交互 / 冲突说明
与 W-01 的 401 自动登出互相排除:改密接口旧密码错误返回 401 时不触发自动登出。命令行
set-password作废会话在 D-05 处理。验收与测试
问题明细(各区审查原文,证据含文件与行号)
[A-16] 改管理员密码时对旧密码的校验不计入锁定
login.go:110-140没有使用locks;登录接口在26-31有锁定。LockAdminIP,失败时计数,锁定时返回 429,成功后清零。internal/admin/login.go。[A-27] 管理员会话清理不完整
admin_sessions行从不删除。改密码后作废其它会话的操作如果失败,错误被忽略,接口仍返回成功,其它会话继续有效。store.go:42-65,74-79;login.go:152-155。internal/admin/store.go、login.go。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交1cb562ffix: 改密计入锁定并清理过期管理员会话 (#49)。