Skip to content

Commit

Permalink
Merge "Follow-up to patch 282363"
Browse files Browse the repository at this point in the history
  • Loading branch information
Jenkins authored and openstack-gerrit committed Feb 26, 2016
2 parents 85b4d65 + c3f0641 commit ee90547
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
19 changes: 12 additions & 7 deletions swiftclient/client.py
Expand Up @@ -72,13 +72,18 @@ def prepare_unicode_headers(self, headers):
logger = logging.getLogger("swiftclient")
logger.addHandler(NullHandler())

#: Default behaviour is to redact tokens, showing only the initial 16 chars.
#: To disable, set the value of 'redact_sensitive_tokens' to False.
#: When token redaction is enabled 'reveal_sensitive_prefix' configures the
#: maximum length of any sensitive token data sent to the logs (if the token
#: is less than 32 chars long then int(len(token)/2) chars will be logged,
#: Default behaviour is to redact header values known to contain secrets,
#: such as ``X-Auth-Key`` and ``X-Auth-Token``. Up to the first 16 chars
#: may be revealed.
#:
#: To disable, set the value of ``redact_sensitive_headers`` to ``False``.
#:
#: When header redaction is enabled, ``reveal_sensitive_prefix`` configures the
#: maximum length of any sensitive header data sent to the logs. If the header
#: is less than twice this length, only ``int(len(value)/2)`` chars will be
#: logged; if it is less than 15 chars long, even less will be logged.
logger_settings = {
'redact_sensitive_tokens': True,
'redact_sensitive_headers': True,
'reveal_sensitive_prefix': 16
}
#: A list of sensitive headers to redact in logs. Note that when extending this
Expand Down Expand Up @@ -124,7 +129,7 @@ def scrub_headers(headers):
(parse_header_string(key), parse_header_string(val))
for (key, val) in headers
]
if not logger_settings.get('redact_sensitive_tokens', True):
if not logger_settings.get('redact_sensitive_headers', True):
return dict(headers)
if logger_settings.get('reveal_sensitive_prefix', 16) < 0:
logger_settings['reveal_sensitive_prefix'] = 16
Expand Down
2 changes: 1 addition & 1 deletion swiftclient/shell.py
Expand Up @@ -1108,7 +1108,7 @@ def parse_args(parser, args, enforce_requires=True):
if options.debug:
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('iso8601').setLevel(logging.WARNING)
client_logger_settings['redact_sensitive_tokens'] = False
client_logger_settings['redact_sensitive_headers'] = False
elif options.info:
logging.basicConfig(level=logging.INFO)

Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_swiftclient.py
Expand Up @@ -2233,7 +2233,7 @@ def test_show_token(self):
unicode_token_value = (u'\u5929\u7a7a\u4e2d\u7684\u4e4c\u4e91'
u'\u5929\u7a7a\u4e2d\u7684\u4e4c\u4e91'
u'\u5929\u7a7a\u4e2d\u7684\u4e4c')
c.logger_settings['redact_sensitive_tokens'] = False
c.logger_settings['redact_sensitive_headers'] = False
c.http_log(
['GET'],
{'headers': {
Expand Down

0 comments on commit ee90547

Please sign in to comment.