)]}'
{"keystone/auth/controllers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"30100e5fd6584ac86e10c563670979a587cfd12e","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        # The \u0027external\u0027 method allows any \u0027REMOTE_USER\u0027 based authentication"},{"line_number":503,"context_line":"        # In some cases the server can set REMOTE_USER as \u0027\u0027 instead of"},{"line_number":504,"context_line":"        # dropping it, so this must be filtered out"},{"line_number":505,"context_line":"        if request.remote_user:"},{"line_number":506,"context_line":"            try:"},{"line_number":507,"context_line":"                external \u003d get_auth_method(\u0027external\u0027)"},{"line_number":508,"context_line":"                external.authenticate(request,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_f98367a7","line":505,"range":{"start_line":505,"start_character":19,"end_line":505,"end_character":30},"updated":"2016-06-16 19:17:00.000000000","message":"Change in request.py [1] explicitly sets auth_type and remote_domain as request properties. I have checked and it\u0027s webob that sets this property into Request instances\n\n\n[1] https://review.openstack.org/#/c/330290/1/keystone/common/request.py","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"}],"keystone/auth/plugins/external.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"14b148d121cd3325eccb110ad7bb135b04e474bb","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"\"\"Allows `kerberos` as a method.\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _authenticate(self, request):"},{"line_number":95,"context_line":"        if request.auth_type !\u003d \u0027Negotiate\u0027:"},{"line_number":96,"context_line":"            raise exception.Unauthorized(_(\"auth_type is not Negotiate\"))"},{"line_number":97,"context_line":"        return super(KerberosDomain, self)._authenticate(request)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_945e9a77","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":44},"updated":"2016-06-16 02:20:16.000000000","message":"independent of this review, but this should be:\n\n  auth_type \u003d (request.auth_type or \u0027\u0027).lower()\n  if auth_type !\u003d \u0027negotiate\u0027:","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"73a2b85915478318bf375f94e5ccf5c70b4d15fb","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"\"\"Allows `kerberos` as a method.\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _authenticate(self, request):"},{"line_number":95,"context_line":"        if request.auth_type !\u003d \u0027Negotiate\u0027:"},{"line_number":96,"context_line":"            raise exception.Unauthorized(_(\"auth_type is not Negotiate\"))"},{"line_number":97,"context_line":"        return super(KerberosDomain, self)._authenticate(request)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_da3fab85","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":44},"in_reply_to":"7aa08908_945e9a77","updated":"2016-06-16 03:32:31.000000000","message":"hmm, probably but i\u0027ve never seen negotiate done with a lowercase n","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6b6088cc604a522fc85caa6ddb0df28d8d7de934","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    \"\"\"Allows `kerberos` as a method.\"\"\""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _authenticate(self, request):"},{"line_number":95,"context_line":"        if request.auth_type !\u003d \u0027Negotiate\u0027:"},{"line_number":96,"context_line":"            raise exception.Unauthorized(_(\"auth_type is not Negotiate\"))"},{"line_number":97,"context_line":"        return super(KerberosDomain, self)._authenticate(request)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_1a7bf32a","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":44},"in_reply_to":"7aa08908_da3fab85","updated":"2016-06-16 03:41:06.000000000","message":"just reiterating what is done on line 50","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"}],"keystone/auth/plugins/mapped.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"14b148d121cd3325eccb110ad7bb135b04e474bb","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def authenticate(self, request, auth_payload, auth_context):"},{"line_number":43,"context_line":"        \"\"\"Authenticate mapped user and set an authentication context."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        :param request: keystone\u0027s request context"},{"line_number":46,"context_line":"        :param auth_payload: the content of the authentication for a"},{"line_number":47,"context_line":"                             given method"},{"line_number":48,"context_line":"        :param auth_context: user authentication context, a dictionary"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_1453ca6d","line":45,"range":{"start_line":45,"start_character":43,"end_line":45,"end_character":50},"updated":"2016-06-16 02:20:16.000000000","message":"rm context","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"30100e5fd6584ac86e10c563670979a587cfd12e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def authenticate(self, request, auth_payload, auth_context):"},{"line_number":43,"context_line":"        \"\"\"Authenticate mapped user and set an authentication context."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        :param request: keystone\u0027s request context"},{"line_number":46,"context_line":"        :param auth_payload: the content of the authentication for a"},{"line_number":47,"context_line":"                             given method"},{"line_number":48,"context_line":"        :param auth_context: user authentication context, a dictionary"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_79c93725","line":45,"range":{"start_line":45,"start_character":43,"end_line":45,"end_character":50},"in_reply_to":"7aa08908_1453ca6d","updated":"2016-06-16 19:17:00.000000000","message":"++","commit_id":"23936d3d2b104d1498169a907589881d5f33108b"}]}
