From b08d2d11db9efe13395bf00f7334e216bedb1e63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 8 Dec 2025 10:07:25 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=AE=BF=E9=97=AE=E6=97=A5=E5=BF=97=20=E6=8E=92?= =?UTF-8?q?=E9=99=A4=E6=95=8F=E6=84=9F=E5=8F=82=E6=95=B0=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/SystemConstants.java | 6 ++++++ .../common/core}/utils/DesensitizedUtils.java | 2 +- .../dromara/common/log/aspect/LogAspect.java | 11 +++------- .../sensitive/core/SensitiveStrategy.java | 2 +- .../gateway/filter/GlobalLogFilter.java | 20 +++++++++++++++++++ 5 files changed, 31 insertions(+), 10 deletions(-) rename ruoyi-common/{ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive => ruoyi-common-core/src/main/java/org/dromara/common/core}/utils/DesensitizedUtils.java (97%) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java index b2e025c7d..308a98bf5 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SystemConstants.java @@ -71,4 +71,10 @@ public interface SystemConstants { * 根部门祖级列表 */ String ROOT_DEPT_ANCESTORS = "0"; + + /** + * 排除敏感属性字段 + */ + String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + } diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/utils/DesensitizedUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java similarity index 97% rename from ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/utils/DesensitizedUtils.java rename to ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java index 8f408b2fe..dafd8e6c4 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/utils/DesensitizedUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DesensitizedUtils.java @@ -1,4 +1,4 @@ -package org.dromara.common.sensitive.utils; +package org.dromara.common.core.utils; import cn.hutool.core.util.DesensitizedUtil; import cn.hutool.core.util.StrUtil; diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java index 5f9102a40..4ae946af3 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java @@ -13,6 +13,7 @@ import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; +import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; @@ -39,12 +40,6 @@ import java.util.*; @AutoConfiguration public class LogAspect { - /** - * 排除敏感属性字段 - */ - public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; - - /** * 计时 key */ @@ -161,7 +156,7 @@ public class LogAspect { String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); operLog.setOperParam(StringUtils.substring(params, 0, 3800)); } else { - MapUtil.removeAny(paramsMap, EXCLUDE_PROPERTIES); + MapUtil.removeAny(paramsMap, SystemConstants.EXCLUDE_PROPERTIES); MapUtil.removeAny(paramsMap, excludeParamNames); operLog.setOperParam(StringUtils.substring(JsonUtils.toJsonString(paramsMap), 0, 3800)); } @@ -175,7 +170,7 @@ public class LogAspect { if (ArrayUtil.isEmpty(paramsArray)) { return params.toString(); } - String[] exclude = ArrayUtil.addAll(excludeParamNames, EXCLUDE_PROPERTIES); + String[] exclude = ArrayUtil.addAll(excludeParamNames, SystemConstants.EXCLUDE_PROPERTIES); for (Object o : paramsArray) { if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) { String str = ""; diff --git a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java index 6d8671782..7a9d724aa 100644 --- a/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java +++ b/ruoyi-common/ruoyi-common-sensitive/src/main/java/org/dromara/common/sensitive/core/SensitiveStrategy.java @@ -3,7 +3,7 @@ package org.dromara.common.sensitive.core; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.DesensitizedUtil; import lombok.AllArgsConstructor; -import org.dromara.common.sensitive.utils.DesensitizedUtils; +import org.dromara.common.core.utils.DesensitizedUtils; import java.util.function.Function; diff --git a/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/GlobalLogFilter.java b/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/GlobalLogFilter.java index fbfa329a8..7c4e05b31 100644 --- a/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/GlobalLogFilter.java +++ b/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/GlobalLogFilter.java @@ -1,8 +1,10 @@ package org.dromara.gateway.filter; +import cn.hutool.core.lang.Dict; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.json.utils.JsonUtils; import org.dromara.gateway.config.properties.ApiDecryptProperties; import org.dromara.gateway.config.properties.CustomGatewayProperties; @@ -17,6 +19,9 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; +import java.util.ArrayList; +import java.util.List; + /** * 全局日志过滤器 *

@@ -51,11 +56,26 @@ public class GlobalLogFilter implements GlobalFilter, Ordered { log.info("[PLUS]开始请求 => URL[{}],参数类型[encrypt]", url); } else { String jsonParam = WebFluxUtils.resolveBodyFromCacheRequest(exchange); + List list = new ArrayList<>(); + if (JsonUtils.isJsonArray(jsonParam)) { + List list1 = JsonUtils.parseArray(jsonParam, String.class); + for (String str : list1) { + Dict map = JsonUtils.parseMap(str); + MapUtil.removeAny(map, SystemConstants.EXCLUDE_PROPERTIES); + list.add(map); + } + jsonParam = JsonUtils.toJsonString(list); + } else { + Dict map = JsonUtils.parseMap(jsonParam); + MapUtil.removeAny(map, SystemConstants.EXCLUDE_PROPERTIES); + jsonParam = JsonUtils.toJsonString(map); + } log.info("[PLUS]开始请求 => URL[{}],参数类型[json],参数:[{}]", url, jsonParam); } } else { MultiValueMap parameterMap = request.getQueryParams(); if (MapUtil.isNotEmpty(parameterMap)) { + MapUtil.removeAny(parameterMap, SystemConstants.EXCLUDE_PROPERTIES); String parameters = JsonUtils.toJsonString(parameterMap); log.info("[PLUS]开始请求 => URL[{}],参数类型[param],参数:[{}]", url, parameters); } else {