|
|
@@ -140,10 +140,12 @@ private static final String[] PUBLIC_PATHS = {
|
|
|
// SC-X-22 CF 值获取预估:预估接口必须登录,游客无 token 直接 401,
|
|
|
// 不泄露规则数值(契约 §7 第 1 行:不展示预估或「登录后可见」)。
|
|
|
"/api/reward/estimate",
|
|
|
- // B-142-1(P1 安全):/api/admin/** 整族鉴权门缺失——匿名(userId=-1, role=anonymous)此前被
|
|
|
- // 放行至 admin 业务 controller,可越权执行审核等敏感操作;现整族要求登录,无 token 直接 401。
|
|
|
- // (/api/admin-auth/* 登录端点前缀不同且走 PUBLIC_PATHS 例外,不受影响;
|
|
|
- // 契约:AdminArticleAuditContractTest 权限流-1/2,能力键 admin.article.audit / S-cfc-154)
|
|
|
+// B-142-1(P1 安全):/api/admin/** 整族鉴权门缺失——admin 业务端点(文章 CRUD、活动、
|
|
|
+ // 审核、配置等)此前仅 /api/admin-auth/* 登录端点走 PUBLIC_PATHS,匿名(userId=-1,
|
|
|
+ // role=anonymous)被放行至 controller 可越权执行敏感操作(如 create/audit);现整族强制
|
|
|
+ // 登录,无 token 直接 401,controller 层再按 @RequestAttribute("role") 守卫拒绝非 admin,
|
|
|
+ // 构成双层防线(契约:admin.article.create / S-cfc-153、admin.article.audit / S-cfc-154)。
|
|
|
+ // 注意 /api/admin-auth/* 不匹配此前缀(admin-auth ≠ admin/),仍走 PUBLIC_PATHS,不受影响。
|
|
|
"/api/admin/"
|
|
|
};
|
|
|
|