)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"531fec9a06a766c8b0b735d4f5c1230c69c8491a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Force the keystone.auth.controllers.Auth.authenticate method to"},{"line_number":10,"context_line":"require the use of an AuthContext object instead of something"},{"line_number":11,"context_line":"duck-typed (dictionary). This is done to ensure the security and"},{"line_number":12,"context_line":"integrity of IDENTITY_KEYS are covered and values are not changed"},{"line_number":13,"context_line":"by a plugin due to the security built into AuthContext being"},{"line_number":14,"context_line":"circumvented since it was not used. This is not pythonic, this"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a3c09a3_e4a5b3b5","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":4},"updated":"2017-01-13 03:38:49.000000000","message":"quack quack","commit_id":"50bf9ed160725d0ab45ffdec6b3d5c14542f032d"}],"keystone/auth/controllers.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"188da358498c5f296219c95f88f1a52319267f97","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                    \u0027purposes this is required. This is likely a programming \u0027"},{"line_number":536,"context_line":"                    \u0027error. Received object of type `%s`\u0027), type(auth_context))"},{"line_number":537,"context_line":"            raise exception.Unauthorized("},{"line_number":538,"context_line":"                _(\u0027Cannot Authenticate due to internal error.\u0027))"},{"line_number":539,"context_line":"        # The \u0027external\u0027 method allows any \u0027REMOTE_USER\u0027 based authentication"},{"line_number":540,"context_line":"        # In some cases the server can set REMOTE_USER as \u0027\u0027 instead of"},{"line_number":541,"context_line":"        # dropping it, so this must be filtered out"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_2b778ed5","line":538,"range":{"start_line":538,"start_character":39,"end_line":538,"end_character":61},"updated":"2017-01-13 02:04:45.000000000","message":"this sounds like a 500 but the return type is 401. This can be confusing.","commit_id":"50bf9ed160725d0ab45ffdec6b3d5c14542f032d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"c09d0273c8e770aa37eca4e41647b7ab63bc5743","unresolved":false,"context_lines":[{"line_number":535,"context_line":"                    \u0027purposes this is required. This is likely a programming \u0027"},{"line_number":536,"context_line":"                    \u0027error. Received object of type `%s`\u0027), type(auth_context))"},{"line_number":537,"context_line":"            raise exception.Unauthorized("},{"line_number":538,"context_line":"                _(\u0027Cannot Authenticate due to internal error.\u0027))"},{"line_number":539,"context_line":"        # The \u0027external\u0027 method allows any \u0027REMOTE_USER\u0027 based authentication"},{"line_number":540,"context_line":"        # In some cases the server can set REMOTE_USER as \u0027\u0027 instead of"},{"line_number":541,"context_line":"        # dropping it, so this must be filtered out"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_0e14a0f3","line":538,"range":{"start_line":538,"start_character":39,"end_line":538,"end_character":61},"in_reply_to":"7a3c09a3_2b778ed5","updated":"2017-01-13 02:15:02.000000000","message":"I am always hesitant to issue an ISE when it is in the auth path. This is definitely unauthorized in either case. ISE (Internal Server Error) could be used if that is preferred. I just worry about adding non-auth status codes.","commit_id":"50bf9ed160725d0ab45ffdec6b3d5c14542f032d"}],"keystone/tests/unit/test_auth_plugin.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"531fec9a06a766c8b0b735d4f5c1230c69c8491a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                          auth_info,"},{"line_number":117,"context_line":"                          auth_context)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_no_user_id_mutate_in_auth_plugins(self):"},{"line_number":120,"context_line":"        methods \u003d [SimplePlugin, MutateUserIdPlugin]"},{"line_number":121,"context_line":"        method_names \u003d [x.meth_name for x in methods]"},{"line_number":122,"context_line":"        method_opts \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_64cb8373","line":119,"range":{"start_line":119,"start_character":8,"end_line":119,"end_character":46},"updated":"2017-01-13 03:38:49.000000000","message":"add some comments to this test abourt why were doing it","commit_id":"50bf9ed160725d0ab45ffdec6b3d5c14542f032d"}],"keystone/tests/unit/test_v3.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"846f224cbf5fa1d7ad2ca8e02b59c99bf9cc23e0","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            auth_data \u003d self.build_authentication_request("},{"line_number":1291,"context_line":"                kerberos\u003dkerberos)[\u0027auth\u0027]"},{"line_number":1292,"context_line":"        auth_info \u003d auth.controllers.AuthInfo.create(auth_data)"},{"line_number":1293,"context_line":"        auth_context \u003d auth.controllers.AuthContext(extras\u003d{}, methods\u003d[])"},{"line_number":1294,"context_line":"        return self.make_request(environ\u003denvironment), auth_info, auth_context"},{"line_number":1295,"context_line":""},{"line_number":1296,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_06946ee0","line":1293,"range":{"start_line":1293,"start_character":63,"end_line":1293,"end_character":73},"updated":"2017-01-13 14:11:35.000000000","message":"this bugs me. Why was method_names changed to methods? Why does everything still work?","commit_id":"3d3c2bf6d860a380abefa96d82caa6581b6ac6b6"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"70987701c7c935aff8dd4ded701ac56ea1489d30","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            auth_data \u003d self.build_authentication_request("},{"line_number":1291,"context_line":"                kerberos\u003dkerberos)[\u0027auth\u0027]"},{"line_number":1292,"context_line":"        auth_info \u003d auth.controllers.AuthInfo.create(auth_data)"},{"line_number":1293,"context_line":"        auth_context \u003d auth.controllers.AuthContext(extras\u003d{}, methods\u003d[])"},{"line_number":1294,"context_line":"        return self.make_request(environ\u003denvironment), auth_info, auth_context"},{"line_number":1295,"context_line":""},{"line_number":1296,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a3c09a3_cf819691","line":1293,"range":{"start_line":1293,"start_character":63,"end_line":1293,"end_character":73},"in_reply_to":"7a3c09a3_06946ee0","updated":"2017-01-13 16:03:11.000000000","message":"This was a mistake/typo. It works because AuthContext is a dict and we explicitly populate method_names in the code path we use it. This is/was suspenders and a belt.","commit_id":"3d3c2bf6d860a380abefa96d82caa6581b6ac6b6"}],"releasenotes/notes/bug-1656076-c4422270f73b43b.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1656076 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"},{"line_number":5,"context_line":"    AuthContext Object now required in keystone.controllers.Auth.authenticate"},{"line_number":6,"context_line":"security:"},{"line_number":7,"context_line":"  - \u003e"},{"line_number":8,"context_line":"    [`bug 1650676 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_7e81324a","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":15},"updated":"2017-01-13 17:27:44.000000000","message":"``AuthContext``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1656076 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"},{"line_number":5,"context_line":"    AuthContext Object now required in keystone.controllers.Auth.authenticate"},{"line_number":6,"context_line":"security:"},{"line_number":7,"context_line":"  - \u003e"},{"line_number":8,"context_line":"    [`bug 1650676 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_be939aa2","line":5,"range":{"start_line":5,"start_character":39,"end_line":5,"end_character":77},"updated":"2017-01-13 17:27:44.000000000","message":"``keystone.controllers.Auth.authenticate``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  - \u003e"},{"line_number":8,"context_line":"    [`bug 1650676 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"},{"line_number":9,"context_line":"    A bug is fixed that could allow an authenticate call to not use the"},{"line_number":10,"context_line":"    AuthContext object which has added security features to ensure things"},{"line_number":11,"context_line":"    such as the user_id does not change between auth methods being processed"},{"line_number":12,"context_line":"    in the Keystone server. The keystone.controllers.Auth.authenticate"},{"line_number":13,"context_line":"    method now requires the argument auth_context to be an actual"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_de906698","line":10,"range":{"start_line":10,"start_character":4,"end_line":10,"end_character":15},"updated":"2017-01-13 17:27:44.000000000","message":"``AuthContext``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    [`bug 1650676 \u003chttps://bugs.launchpad.net/keystone/+bug/1656076\u003e`_]"},{"line_number":9,"context_line":"    A bug is fixed that could allow an authenticate call to not use the"},{"line_number":10,"context_line":"    AuthContext object which has added security features to ensure things"},{"line_number":11,"context_line":"    such as the user_id does not change between auth methods being processed"},{"line_number":12,"context_line":"    in the Keystone server. The keystone.controllers.Auth.authenticate"},{"line_number":13,"context_line":"    method now requires the argument auth_context to be an actual"},{"line_number":14,"context_line":"    AuthContext object. The scope of the fix is only tests, and this"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_3eeeca22","line":11,"range":{"start_line":11,"start_character":16,"end_line":11,"end_character":23},"updated":"2017-01-13 17:27:44.000000000","message":"``user_id``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    A bug is fixed that could allow an authenticate call to not use the"},{"line_number":10,"context_line":"    AuthContext object which has added security features to ensure things"},{"line_number":11,"context_line":"    such as the user_id does not change between auth methods being processed"},{"line_number":12,"context_line":"    in the Keystone server. The keystone.controllers.Auth.authenticate"},{"line_number":13,"context_line":"    method now requires the argument auth_context to be an actual"},{"line_number":14,"context_line":"    AuthContext object. The scope of the fix is only tests, and this"},{"line_number":15,"context_line":"    will prevent security regressions in the future. This is a"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_7ef852e6","line":12,"range":{"start_line":12,"start_character":32,"end_line":12,"end_character":70},"updated":"2017-01-13 17:27:44.000000000","message":"``keystone.controllers.Auth.authenticate``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9e3977f68b8af4f5100f1a1a7584db90650c3a18","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    such as the user_id does not change between auth methods being processed"},{"line_number":12,"context_line":"    in the Keystone server. The keystone.controllers.Auth.authenticate"},{"line_number":13,"context_line":"    method now requires the argument auth_context to be an actual"},{"line_number":14,"context_line":"    AuthContext object. The scope of the fix is only tests, and this"},{"line_number":15,"context_line":"    will prevent security regressions in the future. This is a"},{"line_number":16,"context_line":"    hardening patch and not an exploitable security flaw."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7a3c09a3_dee7863e","line":14,"range":{"start_line":14,"start_character":4,"end_line":14,"end_character":15},"updated":"2017-01-13 17:27:44.000000000","message":"``AuthContext``","commit_id":"e41fdab9fce5ad88f1a5d69fc6b4ec1f4dab6b86"}]}
