)]}'
{"keystone/contrib/oauth1/core.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"4fd4a02946fc35c202c66149ddb4124773871059","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        parameters.update(dict(params))"},{"line_number":134,"context_line":"        return parameters"},{"line_number":135,"context_line":"    else:"},{"line_number":136,"context_line":"        msg \u003d _LE(\u0027Cannot retrieve Authorization headers\u0027)"},{"line_number":137,"context_line":"        LOG.error(msg)"},{"line_number":138,"context_line":"        raise exception.OAuthHeadersMissingError()"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_9170ac73","line":136,"updated":"2014-12-19 09:45:30.000000000","message":"Why is \u0027headers\u0027 in plural form?","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"660b9fbced0c6633c9ea73758fad40fcc3327ffe","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        parameters.update(dict(params))"},{"line_number":134,"context_line":"        return parameters"},{"line_number":135,"context_line":"    else:"},{"line_number":136,"context_line":"        msg \u003d _LE(\u0027Cannot retrieve Authorization headers\u0027)"},{"line_number":137,"context_line":"        LOG.error(msg)"},{"line_number":138,"context_line":"        raise exception.OAuthHeadersMissingError()"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_8e3b22d0","line":136,"in_reply_to":"3a961159_9170ac73","updated":"2014-12-19 15:24:21.000000000","message":"Typically the Authorization header is just one header, but it usually has multiple sub-headers, in the case of OAuth1.0a, it\u0027s:\n\n  Authorization: \n        OAuth oauth_consumer_key\u003d\"xvz1evFS4wEEPTGEFPHBog\", \n              oauth_nonce\u003d\"kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg\", \n              oauth_signature\u003d\"tnnArxj06cWHq44gCs1OSKk%2FjLY%3D\", \n              oauth_signature_method\u003d\"HMAC-SHA1\", \n              oauth_timestamp\u003d\"1318622958\", \n              oauth_token\u003d\"370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb\", \n              oauth_version\u003d\"1.0\"\n\nIf you think it should still be singular, then let me know again, I\u0027m leaning toward headers.","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"}],"keystone/exception.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"4fd4a02946fc35c202c66149ddb4124773871059","unresolved":false,"context_lines":[{"line_number":434,"context_line":""},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"class OAuthHeadersMissingError(UnexpectedError):"},{"line_number":437,"context_line":"    debug_message_format \u003d _(\u0027No Authorization headers found, cannot proceed \u0027"},{"line_number":438,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":439,"context_line":"                             \u0027HTTTd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":440,"context_line":"                             \u0027is set to On.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_7197c090","line":437,"updated":"2014-12-19 09:45:30.000000000","message":"Why is \u0027headers\u0027 in plural form?","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"660b9fbced0c6633c9ea73758fad40fcc3327ffe","unresolved":false,"context_lines":[{"line_number":434,"context_line":""},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"class OAuthHeadersMissingError(UnexpectedError):"},{"line_number":437,"context_line":"    debug_message_format \u003d _(\u0027No Authorization headers found, cannot proceed \u0027"},{"line_number":438,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":439,"context_line":"                             \u0027HTTTd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":440,"context_line":"                             \u0027is set to On.\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_2e54eefd","line":437,"in_reply_to":"3a961159_7197c090","updated":"2014-12-19 15:24:21.000000000","message":"same reasoning as other comment","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"4fd4a02946fc35c202c66149ddb4124773871059","unresolved":false,"context_lines":[{"line_number":436,"context_line":"class OAuthHeadersMissingError(UnexpectedError):"},{"line_number":437,"context_line":"    debug_message_format \u003d _(\u0027No Authorization headers found, cannot proceed \u0027"},{"line_number":438,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":439,"context_line":"                             \u0027HTTTd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":440,"context_line":"                             \u0027is set to On.\u0027)"},{"line_number":441,"context_line":"    title \u003d \u0027Error retrieving OAuth headers\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_d1b3144b","line":439,"updated":"2014-12-19 09:45:30.000000000","message":"I guess httpd should be here instead of htttd","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"660b9fbced0c6633c9ea73758fad40fcc3327ffe","unresolved":false,"context_lines":[{"line_number":436,"context_line":"class OAuthHeadersMissingError(UnexpectedError):"},{"line_number":437,"context_line":"    debug_message_format \u003d _(\u0027No Authorization headers found, cannot proceed \u0027"},{"line_number":438,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":439,"context_line":"                             \u0027HTTTd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":440,"context_line":"                             \u0027is set to On.\u0027)"},{"line_number":441,"context_line":"    title \u003d \u0027Error retrieving OAuth headers\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_6e5a762b","line":439,"in_reply_to":"3a961159_d1b3144b","updated":"2014-12-19 15:24:21.000000000","message":"oops, yes, it should be HTTPd","commit_id":"65f0b7e755058782d48019b2e3962b2d7c55ee2b"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e77abfa92f0fab9aa86777a1fe784af36c0c9a3f","unresolved":false,"context_lines":[{"line_number":455,"context_line":"    debug_message_format \u003d _(\u0027No Authorization headers found, cannot proceed \u0027"},{"line_number":456,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":457,"context_line":"                             \u0027HTTPd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":458,"context_line":"                             \u0027is set to On.\u0027)"},{"line_number":459,"context_line":"    title \u003d \u0027Error retrieving OAuth headers\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_fba277ac","line":458,"updated":"2015-02-19 04:41:43.000000000","message":"nice...and error message that tells me how to fix it (well, probably)","commit_id":"4528c9f14233828648e4ce6cb6ad850026565f82"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"586353d0b516aa97518d03916e8239d15f951e38","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                             \u0027with OAuth related calls, if running under \u0027"},{"line_number":457,"context_line":"                             \u0027HTTPd or Apache, ensure WSGIPassAuthorization \u0027"},{"line_number":458,"context_line":"                             \u0027is set to On.\u0027)"},{"line_number":459,"context_line":"    title \u003d \u0027Error retrieving OAuth headers\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_dd756733","line":459,"updated":"2015-02-20 02:04:01.000000000","message":"Error retrieving OAuth Authorization header ?","commit_id":"4f7d17b4bd94cc4c2e9beef49eb823aab8c3a234"}],"keystone/tests/test_v3_oauth1.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"69e53d11ec2320766098048065d81d505e162746","unresolved":false,"context_lines":[{"line_number":737,"context_line":"                                           http_method\u003d\u0027POST\u0027,"},{"line_number":738,"context_line":"                                           headers\u003dheaders)"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"        # NOTE(stevemar): To simulate this error, we remove the Authorization"},{"line_number":741,"context_line":"        # header from the post request."},{"line_number":742,"context_line":"        del headers[\u0027Authorization\u0027]"},{"line_number":743,"context_line":"        self.post(endpoint, headers\u003dheaders, expected_status\u003d500)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_d1a22fad","line":740,"updated":"2015-02-11 03:56:47.000000000","message":"Great comment!","commit_id":"6d9da9b2ad2e0233132a2276776f5a73f0318595"}],"keystone/tests/unit/test_v3_oauth1.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"1a3d2297e15be919be8e35feec6226c628dc041f","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        # NOTE(stevemar): To simulate this error, we remove the Authorization"},{"line_number":741,"context_line":"        # header from the post request."},{"line_number":742,"context_line":"        del headers[\u0027Authorization\u0027]"},{"line_number":743,"context_line":"        self.post(endpoint, headers\u003dheaders, expected_status\u003d500)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"class JsonHomeTests(OAuth1Tests, test_v3.JsonHomeTestMixin):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_6db5e8eb","line":743,"updated":"2015-02-19 07:13:18.000000000","message":"Shouldn\u0027t it be 400 instead of 500? I would think missing Authorization header constitutes a bad request.","commit_id":"4f7d17b4bd94cc4c2e9beef49eb823aab8c3a234"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"3a2237b26f0a80159311dc9eff83898daacbfc38","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        # NOTE(stevemar): To simulate this error, we remove the Authorization"},{"line_number":741,"context_line":"        # header from the post request."},{"line_number":742,"context_line":"        del headers[\u0027Authorization\u0027]"},{"line_number":743,"context_line":"        self.post(endpoint, headers\u003dheaders, expected_status\u003d500)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"class JsonHomeTests(OAuth1Tests, test_v3.JsonHomeTestMixin):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_cf504e61","line":743,"in_reply_to":"ba7be1f8_8f5c9627","updated":"2015-02-20 03:02:40.000000000","message":"k, make sense","commit_id":"4f7d17b4bd94cc4c2e9beef49eb823aab8c3a234"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3441c7de6be5ed1dfb343a35e2b76423261bbaef","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        # NOTE(stevemar): To simulate this error, we remove the Authorization"},{"line_number":741,"context_line":"        # header from the post request."},{"line_number":742,"context_line":"        del headers[\u0027Authorization\u0027]"},{"line_number":743,"context_line":"        self.post(endpoint, headers\u003dheaders, expected_status\u003d500)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"class JsonHomeTests(OAuth1Tests, test_v3.JsonHomeTestMixin):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_8f5c9627","line":743,"in_reply_to":"da86d52c_4dae6482","updated":"2015-02-20 02:32:18.000000000","message":"Since this is a configuration issue, and the end-user can\u0027t really do anything from their side to fix the issue, 500 seems a valid response.","commit_id":"4f7d17b4bd94cc4c2e9beef49eb823aab8c3a234"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b67d82cba41a82c5edcb879b1cd89e387f6bdb63","unresolved":false,"context_lines":[{"line_number":740,"context_line":"        # NOTE(stevemar): To simulate this error, we remove the Authorization"},{"line_number":741,"context_line":"        # header from the post request."},{"line_number":742,"context_line":"        del headers[\u0027Authorization\u0027]"},{"line_number":743,"context_line":"        self.post(endpoint, headers\u003dheaders, expected_status\u003d500)"},{"line_number":744,"context_line":""},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"class JsonHomeTests(OAuth1Tests, test_v3.JsonHomeTestMixin):"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_4dae6482","line":743,"in_reply_to":"da86d52c_6db5e8eb","updated":"2015-02-19 07:19:40.000000000","message":"not really in this case, the bug in question happens when a mod_wsgi setting isn\u0027t set properly and then proceeds to eat up the authorization header. so the initial request was fine, something in the middle happened.","commit_id":"4f7d17b4bd94cc4c2e9beef49eb823aab8c3a234"}]}
