fix(security): 文件内联预览默认需登录,公开目录改为显式白名单
- file.public-preview 默认值由 true 改为 false(application.yml 与 @Value 同步),
上传一律落在 /yyyyMMdd/ 日期目录,默认公开等于把所有上传文件(含盖章证明材料)
变成匿名可读;公开页面引用的文件必须把所在目录列进 file.public-dirs
- 注释写清「公开页面引用的文件必须列进白名单,否则匿名访问会被拒」,同步更新
FileAccessRules 类注释
- 删掉只被测试调用的 FileAccessRules.isPublicFileRequest(测试钉住的是没上线的
平行判定);测试改为断言 downloadPatterns / permitAllPatterns /
authenticatedPatterns 的内容与顺序
- 顺带把 gxmu.module-registry.strict 改成 ${GXMU_MODULE_REGISTRY_STRICT:true},
与相邻配置一致
refs #58
This commit is contained in:
@@ -92,12 +92,16 @@ config:
|
||||
# 文件访问规则(spec #58)
|
||||
# 下载接口 /api/file/download/** 永远需要登录,「取走原件」不再匿名。
|
||||
#
|
||||
# 确需公开的内联资源(预览 /api/file/<dir>/<name> 与缩略图 /api/file/thumbnail/**):
|
||||
# 默认 true,否则公开页面的配图会整片变成需要 token;置 false 则内联也需登录。
|
||||
# 内联预览(/api/file/<dir>/<name>)与缩略图(/api/file/thumbnail/**)默认也需要登录:
|
||||
# 上传一律落在 /yyyyMMdd/ 日期目录,日期目录正好是两段路径,默认公开等于把所有上传文件
|
||||
# (含盖章证明材料)变成匿名可读。因此默认值从 true 改成 false。
|
||||
#
|
||||
# 公开页面引用的文件必须把所在目录列进下面的 public-dirs 白名单,
|
||||
# 否则匿名访问会被拒(401/403,表现为公开页面的空图)。
|
||||
file:
|
||||
public-preview: ${FILE_PUBLIC_PREVIEW:true}
|
||||
# 额外公开目录(可选,逗号分隔,相对 /api/file):命中这些目录的原图与缩略图即使
|
||||
# public-preview=false 也允许匿名读取。留空表示没有额外目录。
|
||||
public-preview: ${FILE_PUBLIC_PREVIEW:false}
|
||||
# 公开目录白名单(显式声明,逗号分隔,相对 /api/file):命中这些目录的原图与缩略图
|
||||
# 允许匿名读取。留空表示没有任何公开目录——这是安全默认。
|
||||
#
|
||||
# 注意:当前上传一律落在 /yyyyMMdd/ 日期目录(见 FileStorageService.store),
|
||||
# 目录本身不区分公开/私有;写日期目录等于把这些日期的全部文件公开,慎用。
|
||||
@@ -221,9 +225,9 @@ gxmu:
|
||||
allow-unknown-user: false
|
||||
# 模块注册表(spec #58 / ADR 0006):启动期校验注册表 table_name 与 module 一致、
|
||||
# 且注册表引用的业务表在库里存在,不一致直接启动失败(用户故事 21)。
|
||||
# strict 默认 true;本地无库启动可临时设为 false 跳过校验。
|
||||
# strict 默认 true;本地无库启动可临时设 GXMU_MODULE_REGISTRY_STRICT=false 跳过校验。
|
||||
module-registry:
|
||||
strict: true
|
||||
strict: ${GXMU_MODULE_REGISTRY_STRICT:true}
|
||||
openplat-sync:
|
||||
enabled: true
|
||||
# 每天 03:30
|
||||
|
||||
Reference in New Issue
Block a user