)]}'
{"keystone/auth/controllers.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"adc614b5c550c5b4cdf02b74d1a7452c97833c5e","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        # also doesn\u0027t store tokens, so returning a list of revoked tokens"},{"line_number":339,"context_line":"        # would require keystone to write invalid tokens to disk, which defeats"},{"line_number":340,"context_line":"        # the purpose. Return a 403 instead of removing the API all together."},{"line_number":341,"context_line":"        # The alternative would be to return a signed response of just an empty"},{"line_number":342,"context_line":"        # list."},{"line_number":343,"context_line":"        raise exception.Forbidden()"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _combine_lists_uniquely(self, a, b):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_3a1e8d70","line":342,"range":{"start_line":341,"start_character":9,"end_line":342,"end_character":15},"updated":"2018-02-15 18:01:57.000000000","message":"I thought we were pretty much already doing it this way? I don\u0027t think we can change the response like this.","commit_id":"a632d8a73ad7ae8ec1a04cbcce505427d1a6873d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"48b87f5321a20b9a1e00fd2a64c7e57df1be2bd2","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        # also doesn\u0027t store tokens, so returning a list of revoked tokens"},{"line_number":339,"context_line":"        # would require keystone to write invalid tokens to disk, which defeats"},{"line_number":340,"context_line":"        # the purpose. Return a 403 instead of removing the API all together."},{"line_number":341,"context_line":"        # The alternative would be to return a signed response of just an empty"},{"line_number":342,"context_line":"        # list."},{"line_number":343,"context_line":"        raise exception.Forbidden()"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def _combine_lists_uniquely(self, a, b):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_c0f697fa","line":342,"range":{"start_line":341,"start_character":9,"end_line":342,"end_character":15},"in_reply_to":"3fa0c359_3a1e8d70","updated":"2018-02-15 21:21:27.000000000","message":"It requires signing certs. Without certs, we end up 500 for each request. The most correct in this case is to make this 403 - equivalent of changing policy.json to kill the access.\n\nThe signed response is the fundamental issue here. It\u0027s better to indicate this is no longer allowed than to return (depending on config) a signed empty list or a 500 error.","commit_id":"a632d8a73ad7ae8ec1a04cbcce505427d1a6873d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c343a7aaf7ba867e25b92721ad819496afb3f06c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from keystone.auth import core"},{"line_number":19,"context_line":"from keystone.auth import schema"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_e4c19b50","line":16,"range":{"start_line":16,"start_character":7,"end_line":16,"end_character":10},"updated":"2018-08-01 19:58:28.000000000","message":"I just hit 4 failures locally because this wasn\u0027t imported :)","commit_id":"d42e95520302f3203706993304e024e82f947728"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"1f4de7c7a712f1f067e343d114acc2577b36b362","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"from oslo_log import log"},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from keystone.auth import core"},{"line_number":19,"context_line":"from keystone.auth import schema"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_24c8f353","line":16,"range":{"start_line":16,"start_character":7,"end_line":16,"end_character":10},"in_reply_to":"5f7c97a3_e4c19b50","updated":"2018-08-01 20:01:00.000000000","message":"Yeah, somehow it disappeared in a rebase.","commit_id":"d42e95520302f3203706993304e024e82f947728"}]}
