返回 Bug 清单
BUG-0934project-86中已修复backend-auth
移除 /api/user/assistant/** permitAll 裸奔
发现:2026-10-09验证:2026-10-27置信度:70%
症状
commit cd174ca03be9 (2026-09-17) fix(security): 移除 /api/user/assistant/** permitAll 裸奔
根因
根因:SecurityPermitRules L289-292 三条 permitAll 注释自标'联调阶段临时放通;正式上线前移除'。
修复方案
修复 0 行,删除 5 行。改动文件: backend/src/main/java/com/greenfield/gift/security/SecurityPermitRules.java
错误签名
fix(security): 移除 /api/user/assistant/** permitAll 裸奔 根因:SecurityPermitRules L289-292 三条 permitAll 注释自标'联调阶段临时放通;正式上线前移除'。
当前 SmartAssistantService chat() 不区分调用来源,任何人(未登录/非微信)可带 sessionId 刷 LLM Token。
修复:删除三条 permitAll matcher,让 /api/user/assistant/{chat,history,session/**}
走 Spring 默认 authenticated() — 小程序 request.js 自动带 token(L178),
有效则放行,空 token 401 跳登录。
三层安全收益:
1. Token 消耗可关联真实用户 → 限额/告警/审计有据
2. sessionId 虽仍可被伪造,但必须先过 JWT → 门槛陡增
3. 为后续 SmartAssistantService 引入 SecurityUtils.getUserId() 注入铺技术信息
来源项目
project-86
涉及文件
backend/src/main/java/com/greenfield/gift/security/SecurityPermitRules.java
标签
git-sweep, auto-ingested, project-86, mcp-reported, source-agent