All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.opensabre.boot.sensitive.log.strategy.DefaultDesensitizerStrategy Maven / Gradle / Ivy

The newest version!
package io.github.opensabre.boot.sensitive.log.strategy;

import ch.qos.logback.classic.spi.ILoggingEvent;
import com.google.common.collect.Sets;
import io.github.opensabre.boot.sensitive.log.desensitizer.LogBackDesensitizer;
import io.github.opensabre.boot.sensitive.log.desensitizer.PasswordLogBackDesensitizer;

import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;

/**
 * 默认脱敏策略
 * 可支持多个脱敏器,循环使用全部脱敏器处理一次
 */
public class DefaultDesensitizerStrategy implements DesensitizerStrategy {
    /**
     * 默认的脱敏器
     */
    private final Set desensitizers = Sets.newHashSet(new PasswordLogBackDesensitizer());

    @Override
    public String desensitizing(ILoggingEvent event) {
        AtomicReference message = new AtomicReference<>(event.getFormattedMessage());
        desensitizers.forEach(desensitizer -> {
            message.set(desensitizer.desensitize(event, message.get()));
        });
        return message.get();
    }

    /**
     * 追回脱敏器
     *
     * @param logBackDesensitizer 脱敏器
     */
    public void addDesensitizer(LogBackDesensitizer logBackDesensitizer) {
        desensitizers.add(logBackDesensitizer);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy