From 4e8e1acb5b17bd9b6da9506623945c0b0e61a2a1 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Thu, 13 Jun 2024 10:17:47 -0700 Subject: [PATCH] fix email masking algorithm --- notifications_utils/logging.py | 4 +++- tests/notifications_utils/test_logging.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/notifications_utils/logging.py b/notifications_utils/logging.py index 71c82aacb..ba5c862fe 100644 --- a/notifications_utils/logging.py +++ b/notifications_utils/logging.py @@ -155,7 +155,9 @@ class PIIFilter(logging.Filter): ) # ['alice@google.com', 'bob@abc.com'] for email in emails: # do something with each found email string - msg = msg.replace(email, f"XXXXX{email[-10:]}") + email_parts = email.split("@") + masked_email = f"{email_parts[0][0:3]}XXX@{email_parts[1][0:7]}XXX" + msg = msg.replace(email, masked_email) return msg def filter(self, record): diff --git a/tests/notifications_utils/test_logging.py b/tests/notifications_utils/test_logging.py index 89b220324..1b9f999c3 100644 --- a/tests/notifications_utils/test_logging.py +++ b/tests/notifications_utils/test_logging.py @@ -62,5 +62,5 @@ def test_pii_filter(): args=None, ) pii_filter = logging.PIIFilter() - clean_msg = "phone1: 1XXXXX55555, phone2: 1XXXXX55554, email1: XXXXXe@fake.gov, email2: XXXXX2.fake.gov" + clean_msg = "phone1: 1XXXXX55555, phone2: 1XXXXX55554, email1: fakXXX@fake.goXXX, email2: fakXXX@fake2.fXXX" assert pii_filter.filter(record).msg == clean_msg