)]}'
{"keystonemiddleware/tests/test_auth_token_middleware.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cf95cfa3aa3ff5118dac59521a60e81f6f8676b0","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        # First, request is using the hashed token, is valid so goes in"},{"line_number":677,"context_line":"        # cache using the given hash."},{"line_number":678,"context_line":"        # FIXME(dolph): if the token is in the revocation list, why does this"},{"line_number":679,"context_line":"        #               200 instead of 401?!"},{"line_number":680,"context_line":"        req \u003d webob.Request.blank(\u0027/\u0027)"},{"line_number":681,"context_line":"        req.headers[\u0027X-Auth-Token\u0027] \u003d token_hashed"},{"line_number":682,"context_line":"        self.middleware(req.environ, self.start_fake_response)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_a8e3c303","line":679,"updated":"2014-08-15 21:55:31.000000000","message":"auth_token wouldn\u0027t check the revocation list for a hashed + uncached token because it checked the token against the identity server directly. If the token wasn\u0027t valid then the identity server would return 401... I don\u0027t think it\u0027s necessary to both verify the token vs identity server and the revocation list.\n\nIt\u0027s a goofy test because the keystone wouldn\u0027t report a token as valid when the token is in its revocation list, but given how auth_token works, keystone, auth_token\u0027s token cache, and auth_token\u0027s cached revocation list can be out of sync.","commit_id":"8762930788e0b736ea237f0968a7723b24623707"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"512e0006e1abcf26ca9fbfbfa9c3223663c8232f","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        # First, request is using the hashed token, is valid so goes in"},{"line_number":677,"context_line":"        # cache using the given hash."},{"line_number":678,"context_line":"        # FIXME(dolph): if the token is in the revocation list, why does this"},{"line_number":679,"context_line":"        #               200 instead of 401?!"},{"line_number":680,"context_line":"        req \u003d webob.Request.blank(\u0027/\u0027)"},{"line_number":681,"context_line":"        req.headers[\u0027X-Auth-Token\u0027] \u003d token_hashed"},{"line_number":682,"context_line":"        self.middleware(req.environ, self.start_fake_response)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ac7a964_0b283185","line":679,"in_reply_to":"7ac7a964_a8e3c303","updated":"2014-08-15 22:20:02.000000000","message":"Would this be clearer if line 673 (setting the revocation list) was moved after line 683? That would simulate a little better how this could happen in a valid way.","commit_id":"8762930788e0b736ea237f0968a7723b24623707"}]}
