编号:H-07 严重级:low 工作线:管理后端(internal/admin) 来源:审查 A-18 依赖:B-04 (#11) 被依赖:无
采用审查 A-18 的方案:resetKick 出错时回退到 kickEndpoint,审计结果记为 ok_kick_failed 并写错误日志;停用、删除的钩子出错时同样写日志。broker 侧"清会话失败仍然断开"在 B-04 第 4 点完成。
resetKick
kickEndpoint
ok_kick_failed
internal/admin/endpoints.go。
internal/admin/endpoints.go
依赖 B-04 对 fatalKick 行为的调整。
fatalKick
注入会报错的 PasswordResetKick,断言调用了 KickEndpoint,审计结果正确。
PasswordResetKick
KickEndpoint
以下是本次复审各区审查报告的原文段落。A、M、I、P、S 开头的是原始发现编号(A 管理后台与网页、M 消息核心、I 身份认证群在线、P 传输平台部署、S SDK)。解决方案以本 issue 上方的"结论与统一方案"为准;原文里的方案与之不一致时,按上方执行。
Session.fatalKick
ClearSession
endpoints.go:542
_, _ = h.passwordResetKick(...)
broker/session.go:316-321
identity/lifecycle.go:131-138
h.kickEndpoint
internal/broker/session.go
复审基线:main 4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。
4059a15
已合入 origin/main 0c9b459。落地提交 8f47167 fix: 重置密码踢线失败时回退断开并记 ok_kick_failed (#50)。
0c9b459
8f47167
No dependencies set.
The note is not visible to the blocked user.
编号:H-07 严重级:low 工作线:管理后端(internal/admin) 来源:审查 A-18
依赖:B-04 (#11) 被依赖:无
结论与统一方案
采用审查 A-18 的方案:
resetKick出错时回退到kickEndpoint,审计结果记为ok_kick_failed并写错误日志;停用、删除的钩子出错时同样写日志。broker 侧"清会话失败仍然断开"在 B-04 第 4 点完成。改动文件
internal/admin/endpoints.go。与其他问题的交互 / 冲突说明
依赖 B-04 对
fatalKick行为的调整。验收与测试
注入会报错的
PasswordResetKick,断言调用了KickEndpoint,审计结果正确。问题明细(各区审查原文,证据含文件与行号)
[A-18] 回归:重置密码时踢线失败被吞掉,审计仍记 ok
Session.fatalKick在ClearSession写库失败时直接返回,不发 fatal 也不断开。停用和删除有 identity 兜底断开,重置密码没有。结果设备仍在线,审计却写 ok。endpoints.go:542:_, _ = h.passwordResetKick(...)。broker/session.go:316-321。identity/lifecycle.go:131-138。resetKick出错时回退到h.kickEndpoint,审计结果记为ok_kick_failed并写错误日志。停用和删除的钩子出错时同样写日志。可选:N 线让fatalKick在清会话失败时仍然断开连接。internal/admin/endpoints.go;可选internal/broker/session.go(N 线)。PasswordResetKick,断言调用了KickEndpoint,审计结果正确。复审基线:main
4059a15(2026-09-30)。编号说明、各工作线的合并顺序、共享文件归属见总览 #7。已合入 origin/main
0c9b459。落地提交8f47167fix: 重置密码踢线失败时回退断开并记 ok_kick_failed (#50)。