fix: распознавать одиночные имена и расширить правила дат и CVV/PIN

This commit is contained in:
dakocha3
2026-09-22 23:32:45 +03:00
parent 6ca880a992
commit 1cee7d0f0f
3 changed files with 113 additions and 19 deletions
+7 -6
View File
@@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test;
import ru.pdguard.config.SystemPolicy;
import ru.pdguard.core.PayloadStore;
import ru.pdguard.core.Pipeline;
import ru.pdguard.detect.PdTypes;
import ru.pdguard.detect.RuleRegistry;
import ru.pdguard.detect.Span;
import ru.pdguard.mask.Masker;
@@ -39,12 +40,12 @@ class LeakDiagTest {
List<String> remaining = new ArrayList<>();
for (String raw : leaks) {
List<Span> spans = p.findPersonalData(raw, SystemPolicy.DEFAULT);
boolean found = spans.stream().anyMatch(s -> s.type().equals(RuleRegistry.FIO)
|| s.type().equals(RuleRegistry.BIRTH_DATE) || s.type().equals(RuleRegistry.PASSPORT_DATE)
|| s.type().equals(RuleRegistry.CVV) || s.type().equals(RuleRegistry.PIN)
|| s.type().equals(RuleRegistry.INN) || s.type().equals(RuleRegistry.PHONE)
|| s.type().equals(RuleRegistry.CARD) || s.type().equals(RuleRegistry.DRIVER_LICENSE)
|| s.type().equals(RuleRegistry.CITIZENSHIP) || s.type().equals(RuleRegistry.BIRTH_PLACE));
boolean found = spans.stream().anyMatch(s -> s.type().equals(PdTypes.FIO)
|| s.type().equals(PdTypes.BIRTH_DATE) || s.type().equals(PdTypes.PASSPORT_DATE)
|| s.type().equals(PdTypes.CVV) || s.type().equals(PdTypes.PIN)
|| s.type().equals(PdTypes.INN) || s.type().equals(PdTypes.PHONE)
|| s.type().equals(PdTypes.CARD) || s.type().equals(PdTypes.DRIVER_LICENSE)
|| s.type().equals(PdTypes.CITIZENSHIP) || s.type().equals(PdTypes.BIRTH_PLACE));
if (found) {
fixed++;
} else {