summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_context/context.py7
-rw-r--r--oslo_context/tests/test_context.py1
-rw-r--r--releasenotes/notes/dont-leak-auth-token-fb7075316cf87b7c.yaml7
3 files changed, 15 insertions, 0 deletions
diff --git a/oslo_context/context.py b/oslo_context/context.py
index 24ded43..6475c2c 100644
--- a/oslo_context/context.py
+++ b/oslo_context/context.py
@@ -353,6 +353,13 @@ class RequestContext(object):
'user_domain_name': self.user_domain_name,
'project_domain_name': self.project_domain_name}
values.update(self.to_dict())
+ if self.auth_token:
+ # NOTE(jaosorior): Gotta obfuscate the token since this dict is
+ # meant for logging and we shouldn't leak it.
+ values['auth_token'] = '***'
+ else:
+ values['auth_token'] = None
+
return values
@property
diff --git a/oslo_context/tests/test_context.py b/oslo_context/tests/test_context.py
index f81f4f0..7fb8d60 100644
--- a/oslo_context/tests/test_context.py
+++ b/oslo_context/tests/test_context.py
@@ -486,6 +486,7 @@ class ContextTest(test_base.BaseTestCase):
d = ctx.get_logging_values()
self.assertIn('auth_token', d)
+ self.assertEqual(d['auth_token'], '***')
self.assertIn('user', d)
self.assertIn('tenant', d)
self.assertIn('domain', d)
diff --git a/releasenotes/notes/dont-leak-auth-token-fb7075316cf87b7c.yaml b/releasenotes/notes/dont-leak-auth-token-fb7075316cf87b7c.yaml
new file mode 100644
index 0000000..6ae3a04
--- /dev/null
+++ b/releasenotes/notes/dont-leak-auth-token-fb7075316cf87b7c.yaml
@@ -0,0 +1,7 @@
+---
+security:
+ - |
+ The ``get_logging_values`` function no longer outputs the auth_token, but
+ instead leaves it as ``***`` instead. As the name suggests, this function is
+ meant for logging, and letting the auth_token there might leak sensitive
+ data.