本文概览:在logback层面实现对日志中敏感信息进行过滤。

1 背景

1、 背景

就是需要对日志中敏感信息进行遮盖。之前考虑的是在代码使用logger.info时查看相应的参数是否进行了遮盖,但是统计了使用logger的类有2000+个,这样修改起来比较麻烦。所以就考虑在logback层面进行实现。

2、重点

(1)如何在Logback的层面实现?通过自定义PatternLayout来实现。

(2)定义邮件、手机号、银行卡号和身份证信息的正则。

2 实现

包括定义PaternLayout和在logback.xml配置两部分来实现。

2.1 定义PatternLayout

1、实现原理

  • 对于获取到日志信息,进行正则匹配,获取到匹配的字符串matchStr
  • 对匹配到字符串进行遮盖处理,得到maskStr
  • 将处理后的字符串maskStr替换查找到字符串matchStr。

2、具体代码实现如下

2.2 在logback中进行配置

之前logback.xml中配置如下:

对<encoder>替换如下:

2.3 总结

1、 定义邮件、手机号、银行卡号和身份证信息的正则。

(1)银行卡号

(2)手机号

(3)邮箱

(4)身份证信息

更多正则表达式可以参考

java正则表达式

3 代码优化

还可以使用java  SPI来重构代码,每一种类型正则都对应一个处理器。具体代码后续在github上给出。

关于java SPI参考

JAVA SPI的实例

4 参考

1、http://stackoverflow.com/questions/25277930/mask-sensitive-data-in-logs-with-logback

(全文完)

 

分类&标签

发表评论

电子邮件地址不会被公开。 必填项已用*标注