)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"ecf3fa7e42af15091b38ee27fc4895ad0cae61ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4285dce8_69ae2299","updated":"2022-04-21 10:11:45.000000000","message":"Thank you for submitting the patch.\n\nPlease fix the points I commented on.","commit_id":"4255a401896f7dd2b1103fc3510894fa40783f9b"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8d1725b706ad6344bad13eb25141ff74cd501854","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9a9bbc01_0e97bea6","updated":"2022-07-04 10:18:42.000000000","message":"Thank you for re-work.\n\nPlease find my additional comments 😊","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"1f54a40a5c995d221d7df8377654d8f170ba7750","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"67c00806_23de34ba","updated":"2023-06-14 18:13:45.000000000","message":"My comments can be implemented in a follow-up patch and do not warrant blocking this.","commit_id":"e8335e56dc0837b98d5927fdae708cbcecc4e884"}],"doc/source/authentication-plugins.rst":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"ecf3fa7e42af15091b38ee27fc4895ad0cae61ba","unresolved":true,"context_lines":[{"line_number":321,"context_line":"--------------"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"In addition to the Identity plugins a simple plugin that will always use the"},{"line_number":324,"context_line":"same provided token and endpoint is available. This is useful for situations"},{"line_number":325,"context_line":"where you have a token and want to bypass authentication to obtain a new token"},{"line_number":326,"context_line":"for subsequent requests. Testing, proxies, and service-to-service"},{"line_number":327,"context_line":"authentication on behalf of a user are good examples use cases for this"},{"line_number":328,"context_line":"authentication plugin."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"It can be found at :py:class:`keystoneauth1.token_endpoint.Token`."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"For example::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import token_endpoint"},{"line_number":335,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import session"},{"line_number":336,"context_line":"    \u003e\u003e\u003e a \u003d token_endpoint.Token(\u0027http://my.keystone.com:5000/v3\u0027,"},{"line_number":337,"context_line":"    ...                          token\u003dtoken)"},{"line_number":338,"context_line":"    \u003e\u003e\u003e s \u003d session.Session(auth\u003da)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"V3 OAuth 1.0a Plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6f355331_6024b795","side":"PARENT","line":338,"range":{"start_line":324,"start_character":0,"end_line":338,"end_character":1},"updated":"2022-04-21 10:11:45.000000000","message":"Let me confirm the cause of these changes. Don\u0027t you use the old commit as a base of this patch?\n\nhttps://opendev.org/openstack/keystoneauth/commit/b8ddb3b75f223b0cc47c24d1ae35aeee0fa37cf4","commit_id":"24036619413356e68d07acecba109f86088ce93b"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8d1725b706ad6344bad13eb25141ff74cd501854","unresolved":false,"context_lines":[{"line_number":321,"context_line":"--------------"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"In addition to the Identity plugins a simple plugin that will always use the"},{"line_number":324,"context_line":"same provided token and endpoint is available. This is useful for situations"},{"line_number":325,"context_line":"where you have a token and want to bypass authentication to obtain a new token"},{"line_number":326,"context_line":"for subsequent requests. Testing, proxies, and service-to-service"},{"line_number":327,"context_line":"authentication on behalf of a user are good examples use cases for this"},{"line_number":328,"context_line":"authentication plugin."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"It can be found at :py:class:`keystoneauth1.token_endpoint.Token`."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"For example::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import token_endpoint"},{"line_number":335,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import session"},{"line_number":336,"context_line":"    \u003e\u003e\u003e a \u003d token_endpoint.Token(\u0027http://my.keystone.com:5000/v3\u0027,"},{"line_number":337,"context_line":"    ...                          token\u003dtoken)"},{"line_number":338,"context_line":"    \u003e\u003e\u003e s \u003d session.Session(auth\u003da)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"V3 OAuth 1.0a Plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4bc2d0f1_05a2a7d5","side":"PARENT","line":338,"range":{"start_line":324,"start_character":0,"end_line":338,"end_character":1},"in_reply_to":"1283413b_a1976b92","updated":"2022-07-04 10:18:42.000000000","message":"Done","commit_id":"24036619413356e68d07acecba109f86088ce93b"},{"author":{"_account_id":33920,"name":"Yusuke Niimi","email":"niimi.yusuke@fujitsu.com","username":"yniimi"},"change_message_id":"fd5a7d11c51f08d9bb79969c8bf0dfae70aec88c","unresolved":true,"context_lines":[{"line_number":321,"context_line":"--------------"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"In addition to the Identity plugins a simple plugin that will always use the"},{"line_number":324,"context_line":"same provided token and endpoint is available. This is useful for situations"},{"line_number":325,"context_line":"where you have a token and want to bypass authentication to obtain a new token"},{"line_number":326,"context_line":"for subsequent requests. Testing, proxies, and service-to-service"},{"line_number":327,"context_line":"authentication on behalf of a user are good examples use cases for this"},{"line_number":328,"context_line":"authentication plugin."},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"It can be found at :py:class:`keystoneauth1.token_endpoint.Token`."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"For example::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import token_endpoint"},{"line_number":335,"context_line":"    \u003e\u003e\u003e from keystoneauth1 import session"},{"line_number":336,"context_line":"    \u003e\u003e\u003e a \u003d token_endpoint.Token(\u0027http://my.keystone.com:5000/v3\u0027,"},{"line_number":337,"context_line":"    ...                          token\u003dtoken)"},{"line_number":338,"context_line":"    \u003e\u003e\u003e s \u003d session.Session(auth\u003da)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"V3 OAuth 1.0a Plugins"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1283413b_a1976b92","side":"PARENT","line":338,"range":{"start_line":324,"start_character":0,"end_line":338,"end_character":1},"in_reply_to":"6f355331_6024b795","updated":"2022-06-29 07:50:34.000000000","message":"Corrected according to the description of the latest version.\n(Patchset 2)","commit_id":"24036619413356e68d07acecba109f86088ce93b"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"ecf3fa7e42af15091b38ee27fc4895ad0cae61ba","unresolved":true,"context_lines":[{"line_number":375,"context_line":"OAuth2.0 Client Credentials"},{"line_number":376,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"There is a specific authentication method for interacting with Identity servers"},{"line_number":379,"context_line":"that support OAuth2.0 Client Credential Grant. There are obvious differences"},{"line_number":380,"context_line":"with other authentication methods, After the authentication ispassed, if the"},{"line_number":381,"context_line":"subsequent request is sent via HTTPS protocol by the session, the"},{"line_number":382,"context_line":"\"Authorization\" field with an OAuth2.0 access token is automatically added to"},{"line_number":383,"context_line":"the request headers. If the subsequent request is sent via HTTP protocol by the"},{"line_number":384,"context_line":"session, the \"Authorization\" field is not added to the request headers. The"},{"line_number":385,"context_line":"following method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":386,"context_line":"credentials:"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"- :py:class:`~keystoneauth1.identity.v3.OAuth2ClientCredential`:"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b7f101fe_15c898f4","line":386,"range":{"start_line":378,"start_character":0,"end_line":386,"end_character":12},"updated":"2022-04-21 10:11:45.000000000","message":"Maybe we can simplify it a bit.\n\n```\nThere is a specific authentication method for interacting with Identity servers that support OAuth2.0 Client Credential Grant. The notable difference from the other authentication method is that, after passing the authentication, the ``session`` (IS THIS CORRECT?) will add \"Authorization\" header with an OAuth2.0 access token to sent subsequent requests. The access token is only added for the requests using HTTPS according to `RFC6749`_. The following method can be used to authenticate for a token using OAuth2.0 client credentials:\n\n.. _RFC6749: https://datatracker.ietf.org/doc/html/rfc6749\n```","commit_id":"4255a401896f7dd2b1103fc3510894fa40783f9b"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8d1725b706ad6344bad13eb25141ff74cd501854","unresolved":false,"context_lines":[{"line_number":375,"context_line":"OAuth2.0 Client Credentials"},{"line_number":376,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"There is a specific authentication method for interacting with Identity servers"},{"line_number":379,"context_line":"that support OAuth2.0 Client Credential Grant. There are obvious differences"},{"line_number":380,"context_line":"with other authentication methods, After the authentication ispassed, if the"},{"line_number":381,"context_line":"subsequent request is sent via HTTPS protocol by the session, the"},{"line_number":382,"context_line":"\"Authorization\" field with an OAuth2.0 access token is automatically added to"},{"line_number":383,"context_line":"the request headers. If the subsequent request is sent via HTTP protocol by the"},{"line_number":384,"context_line":"session, the \"Authorization\" field is not added to the request headers. The"},{"line_number":385,"context_line":"following method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":386,"context_line":"credentials:"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"- :py:class:`~keystoneauth1.identity.v3.OAuth2ClientCredential`:"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1af45b1d_ce823432","line":386,"range":{"start_line":378,"start_character":0,"end_line":386,"end_character":12},"in_reply_to":"700fcbfc_2029737f","updated":"2022-07-04 10:18:42.000000000","message":"Done","commit_id":"4255a401896f7dd2b1103fc3510894fa40783f9b"},{"author":{"_account_id":33920,"name":"Yusuke Niimi","email":"niimi.yusuke@fujitsu.com","username":"yniimi"},"change_message_id":"fd5a7d11c51f08d9bb79969c8bf0dfae70aec88c","unresolved":true,"context_lines":[{"line_number":375,"context_line":"OAuth2.0 Client Credentials"},{"line_number":376,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"There is a specific authentication method for interacting with Identity servers"},{"line_number":379,"context_line":"that support OAuth2.0 Client Credential Grant. There are obvious differences"},{"line_number":380,"context_line":"with other authentication methods, After the authentication ispassed, if the"},{"line_number":381,"context_line":"subsequent request is sent via HTTPS protocol by the session, the"},{"line_number":382,"context_line":"\"Authorization\" field with an OAuth2.0 access token is automatically added to"},{"line_number":383,"context_line":"the request headers. If the subsequent request is sent via HTTP protocol by the"},{"line_number":384,"context_line":"session, the \"Authorization\" field is not added to the request headers. The"},{"line_number":385,"context_line":"following method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":386,"context_line":"credentials:"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"- :py:class:`~keystoneauth1.identity.v3.OAuth2ClientCredential`:"},{"line_number":389,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"700fcbfc_2029737f","line":386,"range":{"start_line":378,"start_character":0,"end_line":386,"end_character":12},"in_reply_to":"b7f101fe_15c898f4","updated":"2022-06-29 07:50:34.000000000","message":"I fixed it according to the comment.\n(Patchset 2)","commit_id":"4255a401896f7dd2b1103fc3510894fa40783f9b"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8d1725b706ad6344bad13eb25141ff74cd501854","unresolved":true,"context_lines":[{"line_number":389,"context_line":"servers that support OAuth2.0 Client Credential Grant. The notable difference"},{"line_number":390,"context_line":"from the other authentication method is that, after passing the"},{"line_number":391,"context_line":"authentication, the ``session`` will add \"Authorization\" header with an"},{"line_number":392,"context_line":"OAuth2.0 access token to sent subsequent requests. The access token is only"},{"line_number":393,"context_line":"added for the requests using HTTPS according to `RFC6749`_. The following"},{"line_number":394,"context_line":"method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":395,"context_line":"credentials:"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1990671b_676b91bd","line":393,"range":{"start_line":392,"start_character":51,"end_line":393,"end_character":58},"updated":"2022-07-04 10:18:42.000000000","message":"Maybe, this has been changed by the latest version of the related patch [1].\n\nYou can use this sentence as a warning block with a little change for example ``The access token must be only added for the requests using HTTPS according to `RFC6749`_``.\nI think l.387 is an appropriate place to write the warning, but it\u0027s up to you :)\n\n[1] https://review.opendev.org/c/openstack/keystoneauth/+/830734.","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":33920,"name":"Yusuke Niimi","email":"niimi.yusuke@fujitsu.com","username":"yniimi"},"change_message_id":"90c68bb5c405a3c0017ff7b25aaef4f51da2a583","unresolved":true,"context_lines":[{"line_number":389,"context_line":"servers that support OAuth2.0 Client Credential Grant. The notable difference"},{"line_number":390,"context_line":"from the other authentication method is that, after passing the"},{"line_number":391,"context_line":"authentication, the ``session`` will add \"Authorization\" header with an"},{"line_number":392,"context_line":"OAuth2.0 access token to sent subsequent requests. The access token is only"},{"line_number":393,"context_line":"added for the requests using HTTPS according to `RFC6749`_. The following"},{"line_number":394,"context_line":"method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":395,"context_line":"credentials:"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bba7bc31_3527f86b","line":393,"range":{"start_line":392,"start_character":51,"end_line":393,"end_character":58},"in_reply_to":"1990671b_676b91bd","updated":"2022-07-21 05:29:13.000000000","message":"Thank you for your comment.\nI fixed it according to the comment.\n(Patchset 3)","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"2f5eea96e39dd808df26b463d91a5ffd59a0ffff","unresolved":false,"context_lines":[{"line_number":389,"context_line":"servers that support OAuth2.0 Client Credential Grant. The notable difference"},{"line_number":390,"context_line":"from the other authentication method is that, after passing the"},{"line_number":391,"context_line":"authentication, the ``session`` will add \"Authorization\" header with an"},{"line_number":392,"context_line":"OAuth2.0 access token to sent subsequent requests. The access token is only"},{"line_number":393,"context_line":"added for the requests using HTTPS according to `RFC6749`_. The following"},{"line_number":394,"context_line":"method can be used to authenticate for a token using OAuth2.0 client"},{"line_number":395,"context_line":"credentials:"},{"line_number":396,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"f27d9edc_f96b0e96","line":393,"range":{"start_line":392,"start_character":51,"end_line":393,"end_character":58},"in_reply_to":"bba7bc31_3527f86b","updated":"2022-09-13 03:25:25.000000000","message":"Done","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8d1725b706ad6344bad13eb25141ff74cd501854","unresolved":true,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"The most simple example of a plugin is the"},{"line_number":537,"context_line":":py:class:`keystoneauth1.token_endpoint.Token` plugin."},{"line_number":538,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"db6fcd41_47a2fe9a","line":538,"updated":"2022-07-04 10:18:42.000000000","message":"nits.\nCould remove this unnecessary line?\nI think this kind of small \"noise\" can reduce the maintainability in the future.","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"2f5eea96e39dd808df26b463d91a5ffd59a0ffff","unresolved":false,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"The most simple example of a plugin is the"},{"line_number":537,"context_line":":py:class:`keystoneauth1.token_endpoint.Token` plugin."},{"line_number":538,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7131b50c_9bc65870","line":538,"in_reply_to":"301f2c29_a7f44bea","updated":"2022-09-13 03:25:25.000000000","message":"Done","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":33920,"name":"Yusuke Niimi","email":"niimi.yusuke@fujitsu.com","username":"yniimi"},"change_message_id":"90c68bb5c405a3c0017ff7b25aaef4f51da2a583","unresolved":true,"context_lines":[{"line_number":535,"context_line":""},{"line_number":536,"context_line":"The most simple example of a plugin is the"},{"line_number":537,"context_line":":py:class:`keystoneauth1.token_endpoint.Token` plugin."},{"line_number":538,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"301f2c29_a7f44bea","line":538,"in_reply_to":"db6fcd41_47a2fe9a","updated":"2022-07-21 05:29:13.000000000","message":"I fixed it according to the comment.\n(Patchset 3)","commit_id":"227adb94845d5a4237049f6ed6346eee09904a24"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"109404ceab615d34719d0666d418947dc8cb2898","unresolved":true,"context_lines":[{"line_number":385,"context_line":"OAuth2.0 Client Credentials"},{"line_number":386,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":".. warning::"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"   The access token must be only added for the requests using HTTPS according"},{"line_number":391,"context_line":"   to `RFC6749`_"}],"source_content_type":"text/x-rst","patch_set":3,"id":"99e65cc3_f22187a2","line":388,"updated":"2023-05-11 15:15:45.000000000","message":"Please remove this warning. It does apply to every method of sending credentials over the internet and I don\u0027t think it\u0027s necessary to call out OAuth 2.0 specifically.","commit_id":"e8335e56dc0837b98d5927fdae708cbcecc4e884"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"109404ceab615d34719d0666d418947dc8cb2898","unresolved":true,"context_lines":[{"line_number":394,"context_line":"servers that support OAuth2.0 Client Credential Grant. The notable difference"},{"line_number":395,"context_line":"from the other authentication method is that, after passing the"},{"line_number":396,"context_line":"authentication, the ``session`` will add \"Authorization\" header with an"},{"line_number":397,"context_line":"OAuth2.0 access token to sent subsequent requests. The following method can be"},{"line_number":398,"context_line":"used to authenticate for a token using OAuth2.0 client credentials:"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":".. _RFC6749: https://datatracker.ietf.org/doc/html/rfc6749"}],"source_content_type":"text/x-rst","patch_set":3,"id":"91b8f13e_693f9920","line":397,"updated":"2023-05-11 15:15:45.000000000","message":"The word sent is unnecessary here.","commit_id":"e8335e56dc0837b98d5927fdae708cbcecc4e884"}]}
