diff --git a/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/event/SysLogListener.java b/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/event/SysLogListener.java index f2cbb1899..d40f04364 100755 --- a/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/event/SysLogListener.java +++ b/pigx-common/pigx-common-log/src/main/java/com/pig4cloud/pigx/common/log/event/SysLogListener.java @@ -18,16 +18,11 @@ package com.pig4cloud.pigx.common.log.event; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.fasterxml.jackson.annotation.JsonFilter; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ser.FilterProvider; -import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; -import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; import com.pig4cloud.pigx.admin.api.dto.SysLogDTO; import com.pig4cloud.pigx.admin.api.feign.RemoteLogService; -import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.core.jackson.PigxJavaTimeModule; import com.pig4cloud.pigx.common.log.config.PigxLogProperties; +import com.pig4cloud.pigx.common.log.util.JacksonSensitiveFieldUtil; import jakarta.servlet.ServletRequest; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -52,12 +47,11 @@ public class SysLogListener implements InitializingBean { /** * 忽略序列化的对象类型 */ - private final static Class[] ignoreClass = { ServletRequest.class, BindingResult.class }; + private final static Class[] ignoreClass = {ServletRequest.class, BindingResult.class}; /** * new 一个 避免日志脱敏策略影响全局ObjectMapper */ - private final static ObjectMapper objectMapper = new ObjectMapper(); private final RemoteLogService remoteLogService; @@ -79,10 +73,9 @@ public class SysLogListener implements InitializingBean { try { // 序列化参数 - String params = objectMapper.writeValueAsString(list); + String params = JacksonSensitiveFieldUtil.getObjectMapper().writeValueAsString(list); source.setParams(StrUtil.subPre(params, logProperties.getMaxLength())); - } - catch (Exception e) { + } catch (Exception e) { log.error("请求参数序列化异常:{}", e.getMessage()); } } @@ -93,18 +86,8 @@ public class SysLogListener implements InitializingBean { @Override public void afterPropertiesSet() { - objectMapper.addMixIn(Object.class, PropertyFilterMixIn.class); String[] ignorableFieldNames = logProperties.getExcludeFields().toArray(new String[0]); - - FilterProvider filters = new SimpleFilterProvider().addFilter("filter properties by name", - SimpleBeanPropertyFilter.serializeAllExcept(ignorableFieldNames)); - objectMapper.setFilterProvider(filters); - objectMapper.registerModule(new PigxJavaTimeModule()); + JacksonSensitiveFieldUtil.configureSensitiveFields(ignorableFieldNames); + JacksonSensitiveFieldUtil.registerCustomModule(new PigxJavaTimeModule()); } - - @JsonFilter("filter properties by name") - class PropertyFilterMixIn { - - } - }