Merge "Redact tokens in request headers"

This commit is contained in:
Jenkins
2014-08-04 06:53:12 +00:00
committed by Gerrit Code Review
2 changed files with 18 additions and 2 deletions

View File

@@ -139,6 +139,13 @@ class Session(object):
# debug log. # debug log.
return return
def process_header(header):
secure_headers = ('authorization', 'x-auth-token',
'x-subject-token',)
if header[0].lower() in secure_headers:
return (header[0], 'TOKEN_REDACTED')
return header
string_parts = ['REQ: curl -i'] string_parts = ['REQ: curl -i']
# NOTE(jamielennox): None means let requests do its default validation # NOTE(jamielennox): None means let requests do its default validation
@@ -153,7 +160,7 @@ class Session(object):
if headers: if headers:
for header in six.iteritems(headers): for header in six.iteritems(headers):
string_parts.append('-H "%s: %s"' % header) string_parts.append('-H "%s: %s"' % process_header(header))
if json: if json:
data = jsonutils.dumps(json) data = jsonutils.dumps(json)
if data: if data:

View File

@@ -11,6 +11,7 @@
# under the License. # under the License.
import argparse import argparse
import itertools
import uuid import uuid
import mock import mock
@@ -139,10 +140,15 @@ class SessionTests(utils.TestCase):
def test_session_debug_output(self): def test_session_debug_output(self):
session = client_session.Session(verify=False) session = client_session.Session(verify=False)
headers = {'HEADERA': 'HEADERVALB'} headers = {'HEADERA': 'HEADERVALB'}
security_headers = {'Authorization': uuid.uuid4().hex,
'X-Auth-Token': uuid.uuid4().hex,
'X-Subject-Token': uuid.uuid4().hex, }
body = 'BODYRESPONSE' body = 'BODYRESPONSE'
data = 'BODYDATA' data = 'BODYDATA'
self.stub_url('POST', text=body) self.stub_url('POST', text=body)
session.post(self.TEST_URL, headers=headers, data=data) all_headers = dict(
itertools.chain(headers.items(), security_headers.items()))
session.post(self.TEST_URL, headers=all_headers, data=data)
self.assertIn('curl', self.logger.output) self.assertIn('curl', self.logger.output)
self.assertIn('POST', self.logger.output) self.assertIn('POST', self.logger.output)
@@ -153,6 +159,9 @@ class SessionTests(utils.TestCase):
for k, v in six.iteritems(headers): for k, v in six.iteritems(headers):
self.assertIn(k, self.logger.output) self.assertIn(k, self.logger.output)
self.assertIn(v, self.logger.output) self.assertIn(v, self.logger.output)
for k, v in six.iteritems(security_headers):
self.assertIn(k, self.logger.output)
self.assertNotIn(v, self.logger.output)
class RedirectTests(utils.TestCase): class RedirectTests(utils.TestCase):