返回 Bug 清单
BUG-1383project-02高已修复backend-auth
require_auth 不注入 user_id/username 到 kwargs → acl_required admin 豁免从未生效
发现:2026-10-15验证:2026-10-15置信度:95%
症状
所有带 @acl_required 装饰器的端点 (bk_tax_draft_api 等),即使当前登录用户是 admin/super_admin,仍必须过 DB 查 bk_user_client_permission 才能访问
根因
require_auth 用位置参数 prepend 调 f(user_id, username, *args, **kwargs),但 acl_required 从 kwargs.get('username') 取 → kwargs 里根本没有 username(只有 URL params client_id/period)→ 取到空字符串 → admin 豁免永远走不到
修复方案
require_auth 在 Flask request 对象上挂 _auth_user_id/_auth_username/_auth_role (不污染 kwargs 避免 endpoint TypeError); acl_required 改为从 request._auth_role 取并检查 role in ('super_admin','admin') 豁免, 不再依赖 kwargs 或 username 硬编码
错误签名
acl_required admin 豁免 username=='admin' 永远不命中 → 所有带 @acl_required 的端点 admin 用户必须查 DB 验证权限才能通过技术信息
来源项目
project-02
涉及文件
bk_backend/bk_core.py, bk_backend/bk_acl_api.py
标签
project-02, mcp-reported, source-agent