task-190: 日志脱敏契约(StructuredLog.maskToken 统一 Token 部分脱敏,ImageVideo maskForLog 委托;URL query/异常消息体不入日志、防注入)+ 8 条测试

This commit is contained in:
2026-09-04 23:53:23 +08:00
parent 4179e0de23
commit b468750d00
3 changed files with 138 additions and 8 deletions
@@ -54,6 +54,18 @@ public final class StructuredLog {
return result.isEmpty() ? MISSING : result;
}
/** 统一 Token 部分脱敏:≤10 位全打码,长 token 保留前6+后4,中间 ***(与既有 maskForLog 一致)。 */
public static String maskToken(String value) {
if (value == null || value.isBlank()) {
return "";
}
String text = value.trim();
if (text.length() <= 10) {
return "***";
}
return text.substring(0, 6) + "***" + text.substring(text.length() - 4);
}
/**
* 按规范字段集渲染 key=value 串:仅输出规范字段、顺序固定,缺失字段用占位符,
* 避免不同日志字段漂移。