)]}'
{"etc/keystone-paste.ini":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8724726b3f34a2b3df4976dd17e17c4b45259f91","unresolved":false,"context_lines":[{"line_number":54,"context_line":"[pipeline:public_api]"},{"line_number":55,"context_line":"# The last item in this pipeline must be public_service or an equivalent"},{"line_number":56,"context_line":"# application. It cannot be a filter."},{"line_number":57,"context_line":"pipeline \u003d sizelimit url_normalize request_id admin_token_auth build_auth_context token_auth json_body ec2_extension user_crud_extension public_service"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[pipeline:admin_api]"},{"line_number":60,"context_line":"# The last item in this pipeline must be admin_service or an equivalent"}],"source_content_type":"text/x-properties","patch_set":11,"id":"9a68dd71_cbf0ee69","line":57,"range":{"start_line":57,"start_character":46,"end_line":57,"end_character":81},"updated":"2016-01-22 20:54:50.000000000","message":"These two now *have* to be in this order, right? Since admin_token_auth sets whether or not the admin token is set and the build_auth_context consumes that output.","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2ecfb505c20729af6d404f2bfd25c7b48234609d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"[pipeline:public_api]"},{"line_number":55,"context_line":"# The last item in this pipeline must be public_service or an equivalent"},{"line_number":56,"context_line":"# application. It cannot be a filter."},{"line_number":57,"context_line":"pipeline \u003d sizelimit url_normalize request_id admin_token_auth build_auth_context token_auth json_body ec2_extension user_crud_extension public_service"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"[pipeline:admin_api]"},{"line_number":60,"context_line":"# The last item in this pipeline must be admin_service or an equivalent"}],"source_content_type":"text/x-properties","patch_set":11,"id":"9a68dd71_4df11f94","line":57,"range":{"start_line":57,"start_character":46,"end_line":57,"end_character":81},"in_reply_to":"9a68dd71_cbf0ee69","updated":"2016-01-25 20:40:25.000000000","message":"Lance - The filters can remain in the original order. There\u0027s compatibility code in keystone/middleware/auth.py.","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"}],"keystone/middleware/auth.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8724726b3f34a2b3df4976dd17e17c4b45259f91","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        is_admin \u003d request.environ.get(core.CONTEXT_ENV, {}).get(\u0027is_admin\u0027,"},{"line_number":51,"context_line":"                                                                 False)"},{"line_number":52,"context_line":"        if is_admin:"},{"line_number":53,"context_line":"            # NOTE(gyee): no need to proceed any further as we already know"},{"line_number":54,"context_line":"            # this is an admin request."},{"line_number":55,"context_line":"            auth_context \u003d {}"},{"line_number":56,"context_line":"            return auth_context, token_id, is_admin"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_e67ba98a","line":54,"range":{"start_line":53,"start_character":12,"end_line":54,"end_character":39},"updated":"2016-01-22 20:54:50.000000000","message":"This is only an admin request iff the token matches the conf.ADMIN_TOKEN. I think that should be highlighted in the comment - \n\nhttps://github.com/openstack/keystone/blob/master/keystone/middleware/core.py#L51-L63","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2ecfb505c20729af6d404f2bfd25c7b48234609d","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        is_admin \u003d request.environ.get(core.CONTEXT_ENV, {}).get(\u0027is_admin\u0027,"},{"line_number":51,"context_line":"                                                                 False)"},{"line_number":52,"context_line":"        if is_admin:"},{"line_number":53,"context_line":"            # NOTE(gyee): no need to proceed any further as we already know"},{"line_number":54,"context_line":"            # this is an admin request."},{"line_number":55,"context_line":"            auth_context \u003d {}"},{"line_number":56,"context_line":"            return auth_context, token_id, is_admin"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_2d7f0be1","line":54,"range":{"start_line":53,"start_character":12,"end_line":54,"end_character":39},"in_reply_to":"9a68dd71_e67ba98a","updated":"2016-01-25 20:40:25.000000000","message":"Lance - It\u0027s an admin request if some previous filter says that it is. The filters are configurable so this filter doesn\u0027t know what the previous filter used as the criteria. So the comment is accurate as-is.","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"8724726b3f34a2b3df4976dd17e17c4b45259f91","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            return auth_context, token_id, is_admin"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if token_id:"},{"line_number":59,"context_line":"            # In this case the client sent in a token."},{"line_number":60,"context_line":"            auth_context, is_admin \u003d self._build_token_auth_context("},{"line_number":61,"context_line":"                request, token_id)"},{"line_number":62,"context_line":"            return auth_context, token_id, is_admin"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_cbbeae64","line":59,"range":{"start_line":59,"start_character":14,"end_line":59,"end_character":54},"updated":"2016-01-22 20:54:50.000000000","message":"This could still be an admin token, but not the conf.ADMIN_TOKEN.","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2ecfb505c20729af6d404f2bfd25c7b48234609d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            return auth_context, token_id, is_admin"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if token_id:"},{"line_number":59,"context_line":"            # In this case the client sent in a token."},{"line_number":60,"context_line":"            auth_context, is_admin \u003d self._build_token_auth_context("},{"line_number":61,"context_line":"                request, token_id)"},{"line_number":62,"context_line":"            return auth_context, token_id, is_admin"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a68dd71_edd253d0","line":59,"range":{"start_line":59,"start_character":14,"end_line":59,"end_character":54},"in_reply_to":"9a68dd71_cbbeae64","updated":"2016-01-25 20:40:25.000000000","message":"Lance - Actually, it could be the admin token. This is why line 78 checks for admin token.","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3042e78bf51fe5bd3f49c92b5d88cf1e5cdacf","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return None, None, False"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _build_token_auth_context(self, request, token_id):"},{"line_number":78,"context_line":"        if token_id \u003d\u003d CONF.admin_token:"},{"line_number":79,"context_line":"            versionutils.report_deprecated_feature("},{"line_number":80,"context_line":"                LOG,"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a5de9d1_55fffa33","line":77,"range":{"start_line":77,"start_character":40,"end_line":77,"end_character":47},"updated":"2016-01-28 20:35:32.000000000","message":"remove request?","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"}],"keystone/middleware/core.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ddbf62e426adb16dee30e29b91fc00e6c567a167","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        if request.environ.get(CONTEXT_ENV, {}).get(\u0027is_admin\u0027, False):"},{"line_number":174,"context_line":"            # NOTE(gyee): no need to proceed any further as we already know"},{"line_number":175,"context_line":"            # this is an admin request."},{"line_number":176,"context_line":"            return {}"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        token_id \u003d request.headers.get(AUTH_TOKEN_HEADER).strip()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_dcc909ae","line":175,"updated":"2015-08-10 13:58:37.000000000","message":"does this check the token_id against the CONF.admin_token still?","commit_id":"4daff927eff50e741197c9773f1ab96409d35091"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f4e72dcd28062f8a28c7ac617a86f84eda8a7d36","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        if request.environ.get(CONTEXT_ENV, {}).get(\u0027is_admin\u0027, False):"},{"line_number":174,"context_line":"            # NOTE(gyee): no need to proceed any further as we already know"},{"line_number":175,"context_line":"            # this is an admin request."},{"line_number":176,"context_line":"            return {}"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        token_id \u003d request.headers.get(AUTH_TOKEN_HEADER).strip()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_ed9c8710","line":175,"in_reply_to":"1a4dcd0f_dcc909ae","updated":"2015-08-13 21:53:36.000000000","message":"The admin token middleware checks the token_id against CONF.admin_token -- http://git.openstack.org/cgit/openstack/keystone/tree/keystone/middleware/core.py#n69","commit_id":"4daff927eff50e741197c9773f1ab96409d35091"}],"keystone/tests/unit/test_v3.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a74fee766da33e6d8cec24db046c70e6098b4ed8","unresolved":false,"context_lines":[{"line_number":1288,"context_line":""},{"line_number":1289,"context_line":"    def test_admin_token_auth_context(self):"},{"line_number":1290,"context_line":"        # test to make sure AuthContextMiddleware does not attempt to build"},{"line_number":1291,"context_line":"        # auth context if the incoming auth token is the special admin token"},{"line_number":1292,"context_line":"        req \u003d self._mock_request_object(CONF.admin_token)"},{"line_number":1293,"context_line":"        application \u003d None"},{"line_number":1294,"context_line":"        middleware.AuthContextMiddleware(application).process_request(req)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_7cfeb5af","side":"PARENT","line":1291,"updated":"2015-08-10 13:59:16.000000000","message":"do we need to test for this case still?","commit_id":"9491af2db64855b9da5b7ef5f1a3fc1ad3fc3fc5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f4e72dcd28062f8a28c7ac617a86f84eda8a7d36","unresolved":false,"context_lines":[{"line_number":1288,"context_line":""},{"line_number":1289,"context_line":"    def test_admin_token_auth_context(self):"},{"line_number":1290,"context_line":"        # test to make sure AuthContextMiddleware does not attempt to build"},{"line_number":1291,"context_line":"        # auth context if the incoming auth token is the special admin token"},{"line_number":1292,"context_line":"        req \u003d self._mock_request_object(CONF.admin_token)"},{"line_number":1293,"context_line":"        application \u003d None"},{"line_number":1294,"context_line":"        middleware.AuthContextMiddleware(application).process_request(req)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_0db9b379","side":"PARENT","line":1291,"in_reply_to":"1a4dcd0f_7cfeb5af","updated":"2015-08-13 21:53:36.000000000","message":"No, because AuthContextMiddleware shouldn\u0027t have been doing this check since it\u0027s supposed to be done by admin token middleware.","commit_id":"9491af2db64855b9da5b7ef5f1a3fc1ad3fc3fc5"}],"releasenotes/notes/admin_token-a5678d712783c145.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3042e78bf51fe5bd3f49c92b5d88cf1e5cdacf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The ``keystone-paste.ini`` must be updated to put the ``admin_token_auth``"},{"line_number":4,"context_line":"    middleware before ``build_auth_context``. See the sample"},{"line_number":5,"context_line":"    ``keystone-paste.ini`` for the correct ``pipeline`` value. Having"},{"line_number":6,"context_line":"    ``admin_token_auth`` after ``build_auth_context`` is deprecated and will"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"7a5de9d1_55793a2e","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":78},"updated":"2016-01-28 20:35:32.000000000","message":"include a link to the bug","commit_id":"0123ea77511d19b11aefcf3f74c5f4a047238728"}]}
