Skip to content

日志脱敏

参数配置

  • 修改 logback-app.xml 配置

将以下配置放到配置文件的最前面,否则脱敏不生效;<conversionRule conversionWord="msg" converterClass="com.dcits.comet.log.SensitiveDataConverter"/>

xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <contextName>logback</contextName>
    <!--日志脱敏 -->
    <conversionRule conversionWord="msg" converterClass="com.dcits.comet.log.SensitiveDataConverter"/>

    <!-- 引入comet-logback -->
    <include resource="com/dcits/comet/logback/online/comet-logback.xml"/>
</configuration>
  • 脱敏规则配置

application.yml 中新增需要脱敏的字段以及脱敏的规则信息:

yaml
comet:
  #日志脱敏配置
  log:
    sensitiveConfig:
      #开关
      enable: true
      #脱敏规则
      sensitives:
        strategyPhone: strategyPhone
        strategyPassword: strategyPassword
        strategyFixdPhone: strategyFixedPhone
        strategyEmail: strategyEmail
        strategyDocumentId: strategyDocumentId
        strategyDefault: strategyDefault
        strategyCardNo: strategyCardNo
        strategyChineseName: strategyChineseName
        strategyCnapsCode: strategyCnapsCode
        clientName: strategyChineseName
        clientShort: strategyChineseName
        lenderName: strategyChineseName

脱敏规则

脱敏规则名称参数脱敏规则
默认规则strategyDefault默认规则,全部 *
卡号strategyCardNo若卡号长度大于等于 16,展示前 6 位和后 4 位,中间屏蔽为 *;否则使用默认规则;
中文名strategyChineseName姓名长度在 3 个字以内的隐藏姓为 *;姓名在 3 个字到 6 个字(包 含3, 6)只显示后两位,其余隐藏为*;姓名长度大于 6 展示姓和最后两位其余屏蔽为 *
公司开户银行联号strategyCnapsCode长度小于等于 2 时全部展示,长度大于 2 时显示前两位,其他用 * 隐藏;
身份证号strategyDocumentId长度大于等于 16 时,展示前面 6 位和后面 4 位,中间屏蔽为 *;小于 16 位的展示前面 1 位和最后 1 位中间其余屏蔽为 *
邮箱strategyEmail展示邮箱前三位和 @ 符后面的,中间屏蔽为 *
固定电话strategyFixedPhone固定电话后 4 位显示,前面用 * 屏蔽;(若长度小于等于 4 则显示)
密码strategyPassword隐藏为 6 位 *
手机号strategyPhone长度为 11 位,展示前面 3 位后面 2 位,隐藏中间 6 位为 *;若不为 11 位则隐藏最中间 4 位为 *

说明

加密规则支持扩展,实现接口 IStrategy 并注册为 Spring Bean 即可。