)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16046,"name":"Fernando Diaz","email":"diazjf@us.ibm.com","username":"diazjf"},"change_message_id":"9f2d7f2c2b521a3a2c486836c1e414c98968d6f6","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-16 09:48:17 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ecnode auth token in swiftclient log message"},{"line_number":8,"context_line":"Closes-bug:#1516692"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Change-Id: Ifaa468e489a31b3ede5fa8ad30c7b0717345e11b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a5de9d1_31ee1cb5","line":8,"updated":"2016-01-28 17:15:48.000000000","message":"Hello Hu Bing, please add a description of this patch.","commit_id":"56828b4737f25074520821d247ce1f46fb006896"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3e4143befd349c62e99b532f4b1dc06fd888d9e2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Hu Bing \u003chubingsh@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-30 12:44:59 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ecnode auth token in swiftclient log message"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"swiftclient logs sensitive info in headers when logging http requests in debug mode."},{"line_number":10,"context_line":"this patch is to hash sensitive info in headers such as \u0027X-Auth-Token\u0027"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a57f1b5_21979549","line":7,"updated":"2016-02-11 12:30:10.000000000","message":"s/ecnode/encode/","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3e4143befd349c62e99b532f4b1dc06fd888d9e2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ecnode auth token in swiftclient log message"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"swiftclient logs sensitive info in headers when logging http requests in debug mode."},{"line_number":10,"context_line":"this patch is to hash sensitive info in headers such as \u0027X-Auth-Token\u0027"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-bug:#1516692"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a57f1b5_019cd967","line":9,"updated":"2016-02-11 12:30:10.000000000","message":"nit: please wrap long line","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"}],"swiftclient/client.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d4580792b1b3f695dfd00c0416b42a328e8b559e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"AUTH_VERSIONS_V3 \u003d (\u00273.0\u0027, \u00273\u0027, 3)"},{"line_number":44,"context_line":"USER_METADATA_TYPE \u003d tuple(\u0027x-%s-meta-\u0027 % type_ for type_ in"},{"line_number":45,"context_line":"                           (\u0027container\u0027, \u0027account\u0027, \u0027object\u0027))"},{"line_number":46,"context_line":"SENSITIVE_HEADERS \u003d (\u0027X-Auth-Token\u0027, \u0027X-Subject-Token\u0027,)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"try:"},{"line_number":49,"context_line":"    from logging import NullHandler"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_a97b3527","line":46,"updated":"2016-01-30 05:23:45.000000000","message":"In py2 these will be byte strings, and py3 unicode strings. Will that cause problems?\n\n u\u0027x\u0027 in (\u0027x\u0027, \u0027y\u0027)\n\nis True in py2, but\n\n b\u0027x\u0027 in (\u0027x\u0027, \u0027y\u0027)\n\nis False in py3.","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3e4143befd349c62e99b532f4b1dc06fd888d9e2","unresolved":false,"context_lines":[{"line_number":43,"context_line":"AUTH_VERSIONS_V3 \u003d (\u00273.0\u0027, \u00273\u0027, 3)"},{"line_number":44,"context_line":"USER_METADATA_TYPE \u003d tuple(\u0027x-%s-meta-\u0027 % type_ for type_ in"},{"line_number":45,"context_line":"                           (\u0027container\u0027, \u0027account\u0027, \u0027object\u0027))"},{"line_number":46,"context_line":"SENSITIVE_HEADERS \u003d (\u0027X-Auth-Token\u0027, \u0027X-Subject-Token\u0027,)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"try:"},{"line_number":49,"context_line":"    from logging import NullHandler"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a57f1b5_e1073d1a","line":46,"in_reply_to":"7a5de9d1_a97b3527","updated":"2016-02-11 12:30:10.000000000","message":"I don\u0027t recognise X-Subject-Token.\n\nWe have X-Storage-Token although I don\u0027t think that is ever sent from the client, it is accepted in a v1 auth response. But no harm including it.","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d4580792b1b3f695dfd00c0416b42a328e8b559e","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"def safe_header(name, value):"},{"line_number":79,"context_line":"    if name in SENSITIVE_HEADERS and value:"},{"line_number":80,"context_line":"        v \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":81,"context_line":"        h \u003d hashlib.sha1(v)"},{"line_number":82,"context_line":"        d \u003d h.hexdigest()"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_6971bd43","line":79,"updated":"2016-01-30 05:23:45.000000000","message":"Do we know for certain that the headers will be \u0027X-Auth-Token\u0027, not \u0027x-auth-token\u0027 or \u0027X-AUTH-TOKEN\u0027 or anything in between?","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d4580792b1b3f695dfd00c0416b42a328e8b559e","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        v \u003d value.encode(\u0027utf-8\u0027)"},{"line_number":81,"context_line":"        h \u003d hashlib.sha1(v)"},{"line_number":82,"context_line":"        d \u003d h.hexdigest()"},{"line_number":83,"context_line":"        return name, \"{SHA1}%s\" % d"},{"line_number":84,"context_line":"    else:"},{"line_number":85,"context_line":"        return (name, value)"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_c996b13d","line":83,"updated":"2016-01-30 05:23:45.000000000","message":"Any reason to do a SHA1 here rather than just truncate the token (as is done server-side)?\n\nIf we want to truncate, the default value for reveal_sensitive_prefix at https://github.com/openstack/swift/blob/2.6.0/etc/proxy-server.conf-sample#L584-L594 suggests that 16 chars is a decent choice.","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3e4143befd349c62e99b532f4b1dc06fd888d9e2","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    log_method(\"REQ: %s\", \"\".join(string_parts))"},{"line_number":114,"context_line":"    log_method(\"RESP STATUS: %s %s\", resp.status, resp.reason)"},{"line_number":115,"context_line":"    log_method(\"RESP HEADERS: %s\", resp.getheaders())"},{"line_number":116,"context_line":"    if body:"},{"line_number":117,"context_line":"        log_method(\"RESP BODY: %s\", body)"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a57f1b5_bc640a49","line":115,"updated":"2016-02-11 12:30:10.000000000","message":"With auth version 1 you will find that the auth service response headers get logged including the auth token!","commit_id":"eb9eb6db803911e544d80975511d993746d7fcfb"}]}
