我在我的Sping Boot 项目中使用log4j2。当日志事件发生时,我希望使用注解屏蔽DTO中的敏感数据,例如:
@Sensitive(fields = {password, email})
public class MyDTO {
private String name;
private String email;
private String password
}
我希望有机会在注解属性中设置要屏蔽的字段。
我尝试使用自定义的序列化程序,但是我不想每次序列化DTO时都屏蔽数据,只想在发生日志事件时屏蔽数据。
我尝试应用RewritePolicy,但在这种情况下,我已经将日志消息作为String,并且我无法访问类来获取注解参数,以了解应该屏蔽哪些字段。
在调用myDto.toString()方法之前处理日志事件,从类中获取注解,检查要屏蔽的字段,并在设置日志消息之前替换它们,这将是很好的。
你能帮帮我吗?
1条答案
按热度按时间ztigrdn81#
我看起来也一样...有额外的要求,如如果mobileNumber字段,我们必须屏蔽前5个字符
据我所知
我们可以使用log4j配置文件屏蔽字段。https://objectpartners.com/2017/09/26/masking-sensitive-data-in-log4j-2/