summaryrefslogtreecommitdiff
path: root/oslo_utils/tests/test_strutils.py
diff options
context:
space:
mode:
authorHervé Beraud <hberaud@redhat.com>2021-11-03 17:16:50 +0100
committerDaniel Bengtsson <dbengt@redhat.com>2022-01-31 11:30:07 +0100
commit5e9dfa3408a6fac7e870a9b86ee774b5fd71a595 (patch)
treeb203b2c8f83421a8bb42380904f8fd699b15b952 /oslo_utils/tests/test_strutils.py
parent03ed19655230005ce69faefef993f6fa17773f18 (diff)
downloadoslo-utils-5e9dfa3408a6fac7e870a9b86ee774b5fd71a595.tar.gz
Fix regex used to mask password
Some use cases are poorly handled by the regex used to mask password. Indeed when the password contains quotes or double quotes in the middle such as `pass"word`, the mask_password method will return `***"word`. For more details please see https://bugs.launchpad.net/oslo.utils/+bug/1949623 Closes-Bug: #1949623 Change-Id: I941750b4d49d2d75f0831b24d6dd17f4040f70a2 (cherry picked from commit 6e17ae1f7959c64dfd20a5f67edf422e702426aa) (cherry picked from commit 5ce8a7f0f8ecec7a85a23ec3d7a7fb1cad14ceba) (cherry picked from commit 143d3fbfa1e04778884de5acc08fa6f7fdabb265) (cherry picked from commit 65aa4226d4bf286468da6df6759e364c1eb3e049)
Diffstat (limited to 'oslo_utils/tests/test_strutils.py')
-rw-r--r--oslo_utils/tests/test_strutils.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/oslo_utils/tests/test_strutils.py b/oslo_utils/tests/test_strutils.py
index f43cef2..8c7c6f6 100644
--- a/oslo_utils/tests/test_strutils.py
+++ b/oslo_utils/tests/test_strutils.py
@@ -618,11 +618,20 @@ class MaskPasswordTestCase(test_base.BaseTestCase):
expected = 'test = "param1" : "value"'
self.assertEqual(expected, strutils.mask_password(payload))
+ payload = 'test = "original_password" : "aaaaa"aaaa"'
+ expected = 'test = "original_password" : "***"'
+ self.assertEqual(expected, strutils.mask_password(payload))
+
payload = """{'adminPass':'TL0EfN33'}"""
payload = six.text_type(payload)
expected = """{'adminPass':'***'}"""
self.assertEqual(expected, strutils.mask_password(payload))
+ payload = """{'adminPass':'TL0E'fN33'}"""
+ payload = str(payload)
+ expected = """{'adminPass':'***'}"""
+ self.assertEqual(expected, strutils.mask_password(payload))
+
payload = """{'token':'mytoken'}"""
payload = six.text_type(payload)
expected = """{'token':'***'}"""
@@ -698,6 +707,11 @@ class MaskDictionaryPasswordTestCase(test_base.BaseTestCase):
self.assertEqual(expected,
strutils.mask_dict_password(payload))
+ payload = {'password': 'TL0Ef"N33'}
+ expected = {'password': '***'}
+ self.assertEqual(expected,
+ strutils.mask_dict_password(payload))
+
payload = {'user': 'admin', 'password': 'TL0EfN33'}
expected = {'user': 'admin', 'password': '***'}
self.assertEqual(expected,