操作日志参数过滤&脱敏.

This commit is contained in:
lijiahang
2023-10-12 12:59:56 +08:00
parent 1571d47bfb
commit b1e1a87089
16 changed files with 165 additions and 50 deletions

View File

@@ -0,0 +1,43 @@
package com.orion.ops.framework.common.json.filter;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.orion.lang.utils.Desensitizes;
import com.orion.lang.utils.Objects1;
import com.orion.lang.utils.collect.Lists;
import java.util.List;
/**
* 字段脱敏过滤器
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/10/12 11:34
*/
public class FieldDesensitizeFilter implements ValueFilter {
private final int keepStart;
private final int keepEnd;
private final List<String> desensitizeFields;
public FieldDesensitizeFilter(List<String> desensitizeFields) {
this(1, 1, desensitizeFields);
}
public FieldDesensitizeFilter(int keepStart, int keepEnd, List<String> desensitizeFields) {
this.keepStart = keepStart;
this.keepEnd = keepEnd;
this.desensitizeFields = desensitizeFields;
}
@Override
public Object process(Object object, String name, Object value) {
if (Lists.isEmpty(desensitizeFields) || !desensitizeFields.contains(name)) {
return value;
}
return Desensitizes.mix(Objects1.toString(value), keepStart, keepEnd);
}
}

View File

@@ -0,0 +1,28 @@
package com.orion.ops.framework.common.json.filter;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.orion.lang.utils.collect.Lists;
import java.util.List;
/**
* 字段忽略过滤器
*
* @author Jiahang Li
* @version 1.0.0
* @since 2023/10/12 11:21
*/
public class FieldIgnoreFilter implements PropertyFilter {
private final List<String> ignoreFields;
public FieldIgnoreFilter(List<String> ignoreFields) {
this.ignoreFields = ignoreFields;
}
@Override
public boolean apply(Object object, String name, Object value) {
return Lists.isEmpty(ignoreFields) || !ignoreFields.contains(name);
}
}

View File

@@ -10,7 +10,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 工具类
* 配置工具类
*
* @author Jiahang Li
* @version 1.0.0

View File

@@ -1,4 +1,4 @@
package com.orion.ops.framework.common.filter;
package com.orion.ops.framework.common.web.filter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;