Do not log binary data during request
Do not log binary data during debug logging of a session. Replace the binary data with the string <binary_data> instead. sort of a backport of: I5184002f3a21c5e0ee510b21b9a7884c8dccd1e3 Change-Id: I07ddbc3967f297597542f1975004d94c490f6e6b Related-Bug: 1616105
This commit is contained in:
parent
004450040c
commit
af770f17b7
|
@ -201,6 +201,11 @@ class Session(object):
|
|||
% self._process_header(header))
|
||||
|
||||
if data:
|
||||
if isinstance(data, six.binary_type):
|
||||
try:
|
||||
data = data.decode("ascii")
|
||||
except UnicodeDecodeError:
|
||||
data = "<binary_data>"
|
||||
string_parts.append("-d '%s'" % data)
|
||||
try:
|
||||
logger.debug(' '.join(string_parts))
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
|
@ -194,7 +196,7 @@ class SessionTests(utils.TestCase):
|
|||
session = client_session.Session(verify=False)
|
||||
|
||||
body = 'RESP'
|
||||
data = u'unicode_data'
|
||||
data = u'αβγδ'
|
||||
self.stub_url('POST', text=body)
|
||||
session.post(self.TEST_URL, data=data)
|
||||
|
||||
|
@ -219,12 +221,7 @@ class SessionTests(utils.TestCase):
|
|||
# raise a UnicodeDecodeError)
|
||||
session.post(unicode(self.TEST_URL), data=data)
|
||||
|
||||
self.assertIn("Replaced characters that could not be decoded"
|
||||
" in log output", self.logger.output)
|
||||
|
||||
# Our data payload should have changed to
|
||||
# include the replacement char
|
||||
self.assertIn(u"-d 'my data\ufffd'", self.logger.output)
|
||||
self.assertNotIn('my data', self.logger.output)
|
||||
|
||||
def test_logging_cacerts(self):
|
||||
path_to_certs = '/path/to/certs'
|
||||
|
|
Loading…
Reference in New Issue