mirror of
				https://github.com/dromara/RuoYi-Vue-Plus.git
				synced 2025-11-04 16:23:42 +08:00 
			
		
		
		
	操作日志记录支持排除敏感属性字段
This commit is contained in:
		@@ -0,0 +1,24 @@
 | 
			
		||||
package com.ruoyi.common.filter;
 | 
			
		||||
 | 
			
		||||
import com.alibaba.fastjson2.filter.SimplePropertyPreFilter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 排除JSON敏感属性
 | 
			
		||||
 * 
 | 
			
		||||
 * @author ruoyi
 | 
			
		||||
 */
 | 
			
		||||
public class PropertyPreExcludeFilter extends SimplePropertyPreFilter
 | 
			
		||||
{
 | 
			
		||||
    public PropertyPreExcludeFilter()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public PropertyPreExcludeFilter addExcludes(String... filters)
 | 
			
		||||
    {
 | 
			
		||||
        for (int i = 0; i < filters.length; i++)
 | 
			
		||||
        {
 | 
			
		||||
            this.getExcludes().add(filters[i]);
 | 
			
		||||
        }
 | 
			
		||||
        return this;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -19,10 +19,11 @@ import com.ruoyi.common.annotation.Log;
 | 
			
		||||
import com.ruoyi.common.core.domain.model.LoginUser;
 | 
			
		||||
import com.ruoyi.common.enums.BusinessStatus;
 | 
			
		||||
import com.ruoyi.common.enums.HttpMethod;
 | 
			
		||||
import com.ruoyi.common.filter.PropertyPreExcludeFilter;
 | 
			
		||||
import com.ruoyi.common.utils.SecurityUtils;
 | 
			
		||||
import com.ruoyi.common.utils.ServletUtils;
 | 
			
		||||
import com.ruoyi.common.utils.StringUtils;
 | 
			
		||||
import com.ruoyi.common.utils.ip.IpUtils;
 | 
			
		||||
import com.ruoyi.common.utils.SecurityUtils;
 | 
			
		||||
import com.ruoyi.framework.manager.AsyncManager;
 | 
			
		||||
import com.ruoyi.framework.manager.factory.AsyncFactory;
 | 
			
		||||
import com.ruoyi.system.domain.SysOperLog;
 | 
			
		||||
@@ -38,6 +39,9 @@ public class LogAspect
 | 
			
		||||
{
 | 
			
		||||
    private static final Logger log = LoggerFactory.getLogger(LogAspect.class);
 | 
			
		||||
 | 
			
		||||
    /** 排除敏感属性字段 */
 | 
			
		||||
    public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" };
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 处理完请求后执行
 | 
			
		||||
     *
 | 
			
		||||
@@ -168,7 +172,7 @@ public class LogAspect
 | 
			
		||||
                {
 | 
			
		||||
                    try
 | 
			
		||||
                    {
 | 
			
		||||
                        Object jsonObj = JSON.toJSON(o);
 | 
			
		||||
                        String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter());
 | 
			
		||||
                        params += jsonObj.toString() + " ";
 | 
			
		||||
                    }
 | 
			
		||||
                    catch (Exception e)
 | 
			
		||||
@@ -180,6 +184,14 @@ public class LogAspect
 | 
			
		||||
        return params.trim();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 忽略敏感属性
 | 
			
		||||
     */
 | 
			
		||||
    public PropertyPreExcludeFilter excludePropertyPreFilter()
 | 
			
		||||
    {
 | 
			
		||||
        return new PropertyPreExcludeFilter().addExcludes(EXCLUDE_PROPERTIES);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 判断是否需要过滤的对象。
 | 
			
		||||
     * 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user