)]}'
{"id":"openstack%2Fkeystoneauth~1005216","triplet_id":"openstack%2Fkeystoneauth~master~Iddba50fce4891129936a6a2f3d085d7e01bc5896","project":"openstack/keystoneauth","branch":"master","topic":"fix/totp-cache-id","attention_set":{},"removed_from_attention_set":{"5890":{"account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"last_update":"2026-09-21 14:13:38.000000000","reason":"\u003cGERRIT_ACCOUNT_5890\u003e replied on the change","reason_account":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}},"14250":{"account":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"last_update":"2026-09-21 16:49:14.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Iddba50fce4891129936a6a2f3d085d7e01bc5896","subject":"Include TOTP passcode in auth cache key elements","status":"MERGED","created":"2026-09-11 12:50:16.000000000","updated":"2026-09-21 16:54:57.000000000","submitted":"2026-09-21 16:49:14.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"1005216-fix/totp-cache-id","meta_rev_id":"a8ca02a62bf8af4ddf3e67d031963f0c7e29f5d1","_number":1005216,"virtual_id_number":1005216,"owner":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-09-21 16:49:14.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"all":[{"value":2,"date":"2026-09-21 14:22:33.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":2,"date":"2026-09-15 13:07:28.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"all":[{"value":1,"date":"2026-09-21 14:22:33.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"value":0,"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-09-11 13:58:02.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-09-15 13:07:28.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"},{"updated":"2026-09-15 13:07:28.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"state":"REVIEWER"}],"messages":[{"id":"14d4e8c29c45c02014e9d55df596525322c02071","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-09-11 12:50:16.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"745e268c2ce9d2eb6b43a42b336c52e2dae7a36b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-11 13:58:02.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/16e13034db6c4a83820bcc8f5c9e259e\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/b6a81eda90904190ab5f2c8cfee9f8c8 : SUCCESS in 1h 04m 01s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a8a9a32cee76464fa146b99202587598 : SUCCESS in 4m 02s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1973c7e9f33c45bf99882522fde2fb16 : SUCCESS in 7m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d5445f81e3ac450ab9e7ecb64a83d4ac : SUCCESS in 7m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/04e7ea5089fb43d6afa79831482325bd : SUCCESS in 5m 07s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/73fbd75029974d1ab3a4350f80d11e1b : SUCCESS in 12m 35s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/1ece457d17064a01b6e3629931c096ab : SUCCESS in 40m 54s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/7d44af6d31f145c58793d4474a3e48c7 : SUCCESS in 5m 17s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/d3c50eaffead42dbae0e0ca525ffa124 : SUCCESS in 7m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3fed9b8481824712b04acbc327657354 : SUCCESS in 4m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f5346ae39f614a2b9cb69dc3da8d0329 : SUCCESS in 2m 43s","accounts_in_message":[],"_revision_number":1},{"id":"a674e3c4de43c1a4b78ec83aac5a64190e23e07e","tag":"autogenerated:gerrit:setReadyForReview","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-09-15 09:57:44.000000000","message":"Set Ready For Review","accounts_in_message":[],"_revision_number":1},{"id":"f4fd7412cb0c6671d4874a9458fffd7e3d3b779e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-09-15 10:03:01.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased. Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"d04ccc56311dcb12303aed84e118288e7701cbee","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-09-15 10:06:03.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"0e8df4933bc5a5099f7a9de204291ea94ea6b50b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"date":"2026-09-15 10:07:32.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"092938a28d04e445590b54327089459fb395309a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-15 11:34:29.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/67d3fca948794bb8976ab7eace68372d\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/4857aa128dce45c6a64d508fa5f4730b : SUCCESS in 1h 25m 52s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cdeea8d8fe6748efbc59bed07ae97e92 : SUCCESS in 5m 28s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f8ce816630cc46c4a468a904e23d04ed : SUCCESS in 6m 55s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/98de5696f09947bf83be60f3403f4150 : SUCCESS in 3m 58s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/97546d6dc52c4af88849f6a1fc534d6d : SUCCESS in 9m 49s\n- openstack-tox-py315 https://zuul.opendev.org/t/openstack/build/4d3a5244434e4ebfaf4bec335229d8f0 : SUCCESS in 7m 27s (non-voting)\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/d0b100998d6f443dbce9d1acb77f8e2b : SUCCESS in 32m 00s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/3a1960b0c59a46bb818e2a5102978296 : SUCCESS in 4m 39s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/bd82693c6b2b4061b7be4d505ea415cf : SUCCESS in 7m 14s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/56f1c50fc4804825841c682b1fc195da : SUCCESS in 8m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/19d4f04d277e4fcfa9a2473583e203b9 : SUCCESS in 4m 27s","accounts_in_message":[],"_revision_number":4},{"id":"dc899626b24462e60e6b1f53c0d85ac1f6d9ba11","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-09-15 13:07:28.000000000","message":"Patch Set 4: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"ec233b8fea3da4d23eb1468cc384ff19c6485b2c","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-09-21 14:13:38.000000000","message":"Patch Set 4: Code-Review+1","accounts_in_message":[],"_revision_number":4},{"id":"a4d2fd331a1d31c0e1a0c112e505b7d8009604a3","author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"date":"2026-09-21 14:22:33.000000000","message":"Patch Set 4: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":4},{"id":"7bd50298d8592f3f89d8713dbfd300f6581ad0c6","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-21 14:23:30.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":4},{"id":"6fab9c44016f71504dda2c93eca4d548fe1881ea","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-21 16:49:14.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bf8175de24d84e87915467309a9bf927\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/5e4b7691d8bd4a45902a3915c964e83b : SUCCESS in 1h 17m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/085c5a820f2a45d1a963ff8b17d67cf1 : SUCCESS in 4m 18s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/03de24c6049d4d0ebcdb84554b8cd963 : SUCCESS in 4m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0a2389c02ee947f5a72cd819d1f811fc : SUCCESS in 7m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/12b01fa2b6a54483943c4a0817cf7d5a : SUCCESS in 5m 41s\n- openstacksdk-functional-devstack-tips https://zuul.opendev.org/t/openstack/build/c3322a1f207b46fb9fe9b54c59650a8f : SUCCESS in 34m 22s\n- osc-tox-py311-tips https://zuul.opendev.org/t/openstack/build/c488d951757f45a3af2cc14e2e1489a2 : SUCCESS in 4m 54s\n- osc-tox-py314-tips https://zuul.opendev.org/t/openstack/build/39c78e02caa84bc9afca2880e2487540 : SUCCESS in 5m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/51af31484018499fb29715c25a291155 : SUCCESS in 8m 21s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6201a4f182104ed387905f14dfcc5fea : SUCCESS in 3m 19s","accounts_in_message":[],"_revision_number":4},{"id":"8a7edec7a58ec666d313a955312a1b92e651412a","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-21 16:49:14.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":4},{"id":"a8ca02a62bf8af4ddf3e67d031963f0c7e29f5d1","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-21 16:54:57.000000000","message":"Patch Set 4:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1b9fce302b7d4107b4210398d0c7b1bf\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e6c60cbffd534224b7973ffbab166c17 : SUCCESS in 56s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/08f246d107524036900379f39edc5ffc : SUCCESS in 1m 02s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"c1599f05939971bd872ba3cb65852dacdd514ded","revisions":{"616f2e557f9235d5b438e7cd64ffd6e59b3a4866":{"kind":"REWORK","_number":1,"created":"2026-09-11 12:50:16.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/16/1005216/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/16/1005216/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/1"}}},"commit":{"parents":[{"commit":"7524c0e2fb9997799cce8d3b7862b6ef2f7b08f1","subject":"Fix typo","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/7524c0e2fb9997799cce8d3b7862b6ef2f7b08f1"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-11 12:50:09.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-11 12:50:09.000000000","tz":120},"subject":"Include TOTP passcode in auth cache key elements","message":"Include TOTP passcode in auth cache key elements\n\nTOTPMethod.get_cache_id_elements() omitted the passcode because it\nrotates frequently, but that left the cache id dependent only on user\nand scope parameters. Two TOTP plugins for the same user with\ndifferent passcodes therefore produced the same get_cache_id(), so a\ncache keyed on that id could return another passcode\u0027s auth state.\n\nInclude totp_passcode in the cache elements, matching how password\ncredentials are hashed into PasswordMethod\u0027s cache id.\n\nAssisted-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iddba50fce4891129936a6a2f3d085d7e01bc5896\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/616f2e557f9235d5b438e7cd64ffd6e59b3a4866"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/616f2e557f9235d5b438e7cd64ffd6e59b3a4866"}]},"branch":"refs/heads/master"},"0204f68de1f8fab62a79e1e7ca2c99a55bb17cfd":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":2,"created":"2026-09-15 10:03:01.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/16/1005216/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/16/1005216/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/2"}}},"commit":{"parents":[{"commit":"ac0679fc8a611fd2a8984fcc5e6c2474caf9d355","subject":"typing: Remove unnecessary use of TYPE_CHECKING","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ac0679fc8a611fd2a8984fcc5e6c2474caf9d355"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-11 12:50:09.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-15 10:02:53.000000000","tz":120},"subject":"Include TOTP passcode in auth cache key elements","message":"Include TOTP passcode in auth cache key elements\n\nTOTPMethod.get_cache_id_elements() omitted the passcode because it\nrotates frequently, but that left the cache id dependent only on user\nand scope parameters. Two TOTP plugins for the same user with\ndifferent passcodes therefore produced the same get_cache_id(), so a\ncache keyed on that id could return another passcode\u0027s auth state.\n\nInclude totp_passcode in the cache elements, matching how password\ncredentials are hashed into PasswordMethod\u0027s cache id.\n\nCloses-Bug: #2167094\n\nAssisted-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iddba50fce4891129936a6a2f3d085d7e01bc5896\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/0204f68de1f8fab62a79e1e7ca2c99a55bb17cfd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/0204f68de1f8fab62a79e1e7ca2c99a55bb17cfd"}]},"branch":"refs/heads/master"},"be4d0d13e3bae63909daf9583d5b4faf9a831316":{"kind":"REWORK","_number":3,"created":"2026-09-15 10:06:03.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/16/1005216/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/16/1005216/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/3"}}},"commit":{"parents":[{"commit":"ac0679fc8a611fd2a8984fcc5e6c2474caf9d355","subject":"typing: Remove unnecessary use of TYPE_CHECKING","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ac0679fc8a611fd2a8984fcc5e6c2474caf9d355"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-11 12:50:09.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-15 10:05:25.000000000","tz":120},"subject":"Include TOTP passcode in auth cache key elements","message":"Include TOTP passcode in auth cache key elements\n\nTOTPMethod.get_cache_id_elements() omitted the passcode because it\nrotates frequently, but that left the cache id dependent only on user\nand scope parameters. Two TOTP plugins for the same user with\ndifferent passcodes therefore produced the same get_cache_id(), so a\ncache keyed on that id could return another passcode\u0027s auth state.\n\nInclude totp_passcode in the cache elements, matching how password\ncredentials are hashed into PasswordMethod\u0027s cache id. Closes-Bug: #2167094\n\nAssisted-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iddba50fce4891129936a6a2f3d085d7e01bc5896\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/be4d0d13e3bae63909daf9583d5b4faf9a831316"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/be4d0d13e3bae63909daf9583d5b4faf9a831316"}]},"branch":"refs/heads/master"},"c1599f05939971bd872ba3cb65852dacdd514ded":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2026-09-15 10:07:32.000000000","uploader":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"ref":"refs/changes/16/1005216/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystoneauth","ref":"refs/changes/16/1005216/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystoneauth refs/changes/16/1005216/4"}}},"commit":{"parents":[{"commit":"ac0679fc8a611fd2a8984fcc5e6c2474caf9d355","subject":"typing: Remove unnecessary use of TYPE_CHECKING","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/ac0679fc8a611fd2a8984fcc5e6c2474caf9d355"}]}],"author":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-11 12:50:09.000000000","tz":120},"committer":{"name":"Grzegorz Grasza","email":"xek@redhat.com","date":"2026-09-15 10:07:18.000000000","tz":120},"subject":"Include TOTP passcode in auth cache key elements","message":"Include TOTP passcode in auth cache key elements\n\nTOTPMethod.get_cache_id_elements() omitted the passcode because it\nrotates frequently, but that left the cache id dependent only on user\nand scope parameters. Two TOTP plugins for the same user with\ndifferent passcodes therefore produced the same get_cache_id(), so a\ncache keyed on that id could return another passcode\u0027s auth state.\n\nInclude totp_passcode in the cache elements, matching how password\ncredentials are hashed into PasswordMethod\u0027s cache id.\n\nCloses-Bug: #2167094\nChange-Id: Iddba50fce4891129936a6a2f3d085d7e01bc5896\nSigned-off-by: Grzegorz Grasza \u003cxek@redhat.com\u003e\nAssisted-by: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c1599f05939971bd872ba3cb65852dacdd514ded"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystoneauth/commit/c1599f05939971bd872ba3cb65852dacdd514ded"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
