From 93cdfec784cce9b9bb2baa89ab42f1a86a2ce2f9 Mon Sep 17 00:00:00 2001 From: xuyang Date: Mon, 1 Dec 2025 15:52:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0)?= =?UTF-8?q?=EF=BC=9A=E6=8E=A7=E5=88=B6=E5=8F=B0=E8=BE=93=E5=87=BA=E5=AF=B9?= =?UTF-8?q?=E6=95=8F=E6=84=9F=E4=BF=A1=E6=81=AF=E8=BF=9B=E8=A1=8C=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/pj/satoken/SaLogForSlf4j.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/sa-token-demo/sa-token-demo-solon-redisson/src/main/java/com/pj/satoken/SaLogForSlf4j.java b/sa-token-demo/sa-token-demo-solon-redisson/src/main/java/com/pj/satoken/SaLogForSlf4j.java index 41f47c65..b1ccf4ca 100644 --- a/sa-token-demo/sa-token-demo-solon-redisson/src/main/java/com/pj/satoken/SaLogForSlf4j.java +++ b/sa-token-demo/sa-token-demo-solon-redisson/src/main/java/com/pj/satoken/SaLogForSlf4j.java @@ -17,6 +17,22 @@ import org.slf4j.LoggerFactory; public class SaLogForSlf4j extends SaLogForConsole implements SaLog { static final Logger log = LoggerFactory.getLogger(SaLogForSlf4j.class); + // 添加敏感信息过滤器 + private static final Pattern SENSITIVE_PATTERN = + Pattern.compile("(token|password|secret|key)=([^&,\\s]+)", Pattern.CASE_INSENSITIVE); + + /** + * 过滤字符串中的敏感信息 + * + * @param msg 待处理的字符串 + */ + private String filterSensitiveInfo(String msg) { + if (msg == null) { + return null; + } + return SENSITIVE_PATTERN.matcher(msg).replaceAll("$1=***"); + } + /** * 打印日志到控制台 * @@ -27,23 +43,24 @@ public class SaLogForSlf4j extends SaLogForConsole implements SaLog { public void println(int level, String str, Object... args) { SaTokenConfig config = SaManager.getConfig(); + String filteredMsg = filterSensitiveInfo(format(str, args)); if (config.getIsLog() && level >= config.getLogLevelInt()) { switch (level) { case trace: - log.trace(LOG_PREFIX + StrFormatter.format(str, args)); + log.trace(LOG_PREFIX + StrFormatter.format(filteredMsg, args)); break; case debug: - log.debug(LOG_PREFIX + StrFormatter.format(str, args)); + log.debug(LOG_PREFIX + StrFormatter.format(filteredMsg, args)); break; case info: - log.info(LOG_PREFIX + StrFormatter.format(str, args)); + log.info(LOG_PREFIX + StrFormatter.format(filteredMsg, args)); break; case warn: - log.warn(LOG_PREFIX + StrFormatter.format(str, args)); + log.warn(LOG_PREFIX + StrFormatter.format(filteredMsg, args)); break; case error: case fatal: - log.error(LOG_PREFIX + StrFormatter.format(str, args)); + log.error(LOG_PREFIX + StrFormatter.format(filteredMsg, args)); break; } } -- Gitee