日志输出敏感信息,混淆处理

本文介绍了如何使用Java实现一个Logback日志输出过滤器,通过`SensitiveDataMaskingInterceptor`拦截器,对包含手机号和身份证号的日志消息进行星号(*)替换,确保信息安全。在logback.xml中配置该拦截器以应用到日志记录中。
摘要由CSDN通过智能技术生成

拿身份证、手机号为例

1.新增日志输出过滤类

import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.spi.FilterReply;
import ch.qos.logback.core.filter.AbstractMatcherFilter;

public class SensitiveDataMaskingInterceptor extends AbstractMatcherFilter<ILoggingEvent> {

    @Override
    public FilterReply decide(ILoggingEvent event) {
        if (event.getMessage() != null) {
            String maskedMessage = maskSensitiveData(event.getMessage());
            event.setMessage(maskedMessage);
        }
        return FilterReply.NEUTRAL;
    }

    private String maskSensitiveData(String message) {
        // Replace phone numbers and ID numbers with asterisks
        String maskedMessage = message
            .replaceAll("\\b\\d{11}\\b", "***********") // Phone number
            .replaceAll("\\b\\d{17}\\w\\b", "*****************"); // ID number
        return maskedMessage;
    }
}

2.配置logback.xml文件

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="com.example.SensitiveDataMaskingInterceptor" />
        <encoder>
            <pattern>%d [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

其他的信息做混淆输出处理,同理,需要添加进行替换的表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值