service.xpcool.com/internal
夏犀麟 d136c23874 fix(encrypt): 全量加密豁免 multipart 上传,修复文件上传被拒
问题:encrypt.fullBody=true 时,APICrypto 中间件会把所有非豁免请求的
body 当 JSON 解析取 {encryptedKey, encryptedData}。文件上传走
multipart/form-data,body 是二进制流,json.Unmarshal 必然失败,于是
被判定为「未加密的业务请求」直接拒绝(encrypted request required)。

而前端的请求拦截器对 FormData 是一律跳过加密的
(admin request.ts:`config.data instanceof FormData` 直接 return),
即上传请求本就以明文 multipart 发出。两端语义不一致,导致
fullBody 一开启,后台壁纸上传必然报错。

修复:新增 isMultipartRequest 判断,命中 multipart/form-data 的请求
跳过整体解密;响应侧因拿不到会话密钥(aesKeyB64 为空),保持明文
回传,与前端「FormData 请求不解密响应」的行为对齐。

dev 环境 fullBody=false,该路径不会被触发,故此前联调未暴露。
上传接口仍受 JWT 鉴权与 RBAC(POST + path 精确匹配)保护,豁免
整体加密不降低鉴权强度。
2026-09-14 02:33:43 +08:00
..
cmd fix(wallpaper): 配置回填加固,兼容缺失配置段与未替换占位符 2026-09-14 02:04:32 +08:00
consts feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
controller feat(wallpaper): 平台配置脱敏回显 + 图库元字段补齐 2026-09-14 01:48:23 +08:00
dao feat(wallpaper): 壁纸模块后端(开源平台插件 + 自建图库 + 前后台接口) 2026-09-14 01:39:09 +08:00
library feat(i18n): 中文化校验提示与服务层错误信息 2026-09-13 23:22:46 +08:00
middleware fix(encrypt): 全量加密豁免 multipart 上传,修复文件上传被拒 2026-09-14 02:33:43 +08:00
model feat(wallpaper): 平台配置脱敏回显 + 图库元字段补齐 2026-09-14 01:48:23 +08:00
service feat(wallpaper): 平台配置脱敏回显 + 图库元字段补齐 2026-09-14 01:48:23 +08:00
table feat(house): 扩充看房数据并增强服务器日志功能 2026-08-27 01:47:32 +08:00