使用log4j通过注解屏蔽敏感数据

mklgxw1f  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(342)

我在我的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()方法之前处理日志事件,从类中获取注解,检查要屏蔽的字段,并在设置日志消息之前替换它们,这将是很好的。
你能帮帮我吗?

ztigrdn8

ztigrdn81#

我看起来也一样...有额外的要求,如如果mobileNumber字段,我们必须屏蔽前5个字符
据我所知
我们可以使用log4j配置文件屏蔽字段。https://objectpartners.com/2017/09/26/masking-sensitive-data-in-log4j-2/

相关问题