)]}'
{"id":"openstack%2Fkeystone~979360","triplet_id":"openstack%2Fkeystone~master~I5d5a0d9d03a80d9a7e97e4378d2f7ed823416abd","project":"openstack/keystone","branch":"master","hashtags":[],"change_id":"I5d5a0d9d03a80d9a7e97e4378d2f7ed823416abd","subject":"Widen OIDC Apache Location directives to match any identity provider","status":"NEW","created":"2026-03-06 22:31:53.000000000","updated":"2026-03-08 00:31:19.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"2ac1553907b0554ca7ace07bb1f06b43b1df0565","_number":979360,"virtual_id_number":979360,"owner":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-03-08 00:31:19.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":{"all":[{"_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":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-03-06 23:04:41.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":"CC"},{"updated":"2026-03-07 00:21:14.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"}],"messages":[{"id":"cc54491a1865b3d15147c63de1df54a242c3c47a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-06 22:31:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"28a3142ed94120b0bca04670a9789e5ccabfa25b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-06 23:04:41.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4da3fe302e084e8c89c5a42023ae97be\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/bfe53a9a4b4c4de082bbe9f44916492a : SUCCESS in 24m 12s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/bb18cc7e30a9445284e7e59d7a34b317 : SUCCESS in 17m 13s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/eaebf946e81e4807bc61cc92685c8063 : SUCCESS in 30m 33s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"f2fb252c32d705c48db461e2e063d46fea486726","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 00:21:14.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4f5b9ed1ddd3461a9920d9424f7f3ae7\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9b8c73a0567d4ea19931c4f174af2348 : SUCCESS in 13m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1dc31994ca904ea19f58acc18847bacb : SUCCESS in 5m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/af70ccc48e374485927b86101fcd43dc : SUCCESS in 13m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4b21989732994bc097ab5e74eaafa76b : SUCCESS in 10m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/23696bf9b43d4571addfcd24e3c85382 : SUCCESS in 14m 31s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/62039636e7344cb7bfb80b12a81850d7 : SUCCESS in 10m 55s\n- grenade https://zuul.opendev.org/t/openstack/build/f119f2b7f1c146669a6693cbf2a8ac5f : SUCCESS in 44m 20s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/de5ff3dad5ff4bc6b39dff73b8f4072f : SUCCESS in 1h 43m 58s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/ee7a45915ef74446992bab0abcacad02 : SUCCESS in 19m 21s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/f7c07a70b0ce4502907bcbe6a93edd0b : SUCCESS in 34m 24s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/d07fbdc1eeab40999c27367c45aebb6d : FAILURE in 10m 25s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/ddfafe3f51774768aeb12bef8da0fe9d : FAILURE in 27m 46s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/8e6950be5b184ab3b8d48a055286f334 : SUCCESS in 17m 31s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/8f8e9b5594a34cf5889cb97baf1b2b03 : SUCCESS in 32m 00s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/d6b1c6cd45a24c059ecc0f6a7cc8e330 : SUCCESS in 23m 36s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/59350567f31e4eeaa762c5e3b1e1654c : SUCCESS in 59m 38s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/3158e410d8f244219cb5adbb2876b688 : FAILURE in 39m 52s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/48e9185e50df49e7ab2d5d02e30d7731 : SUCCESS in 7m 20s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"18bc58067c38d55f292e0b5a437ac47243ed1e55","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-07 17:59:46.000000000","message":"Uploaded patch set 2: New patch set was added with same tree, parent tree, and commit message as Patch Set 1.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"85cb05684eedec54cf67fa00b67c43dc97b3b04d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 18:34:36.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a394cecc327341feb7979346a2308a25\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/1e4ba2d7fec34b56825fcdefa8c80237 : SUCCESS in 25m 02s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/c2a3d07cbd18499e9c2247aaa3ad8168 : SUCCESS in 13m 28s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/a9f83f4e92e64a2ba5c11f325d0fa3a9 : SUCCESS in 32m 34s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"3608cd44a1407a387457160714e29327840f0b81","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 19:05:06.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d833ebd2859941e595e301d54a68bdc3\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/587f99766547409aae33d7ed824535df : SUCCESS in 17m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b6295110f7214f1daa17e3cf147208ff : SUCCESS in 4m 52s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/b91a068e7c174b2582e6eda762d2f63a : SUCCESS in 8m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5196476d70b34b0f8025ba76387a5c2b : SUCCESS in 10m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9a90b24badb44f06ac3ca391063ed1c3 : SUCCESS in 8m 15s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f63a256fff1f4b9c87d2ccaff7ccd832 : SUCCESS in 13m 46s\n- grenade https://zuul.opendev.org/t/openstack/build/3fa9334bb54f4819bfe5385fd52b0cca : SUCCESS in 1h 00m 00s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/28f23d3155154ac68cc601c8ab4c1458 : SUCCESS in 1h 03m 55s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/96d610d03b674e77a8d915eb7cad2504 : SUCCESS in 16m 37s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/2fff597f038d42838124199eea3b41ba : SUCCESS in 28m 44s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/809d42700f37425d8eca1b9aeb7a630e : FAILURE in 17m 33s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/16c8f98ba6434930aecedfcfdc600a90 : FAILURE in 25m 52s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/4796f2a49ec04deab8b199bc344e7d3f : SUCCESS in 15m 04s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/ef52ffd30eb64656997d060d97bf8bae : SUCCESS in 21m 05s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/2c5b71e0e8464a259c1da32ec26c0b39 : SUCCESS in 37m 35s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/705931c7e314425e94f4e892b8033d67 : SUCCESS in 57m 07s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/082abcc0dc934629aa8a2d7842b91e10 : FAILURE in 39m 36s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/d3f7018e0fe74c718908035b9cea7f8b : SUCCESS in 7m 54s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"dc5276a490fed94df2868e1fc9ec5c771c8492da","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"date":"2026-03-07 23:07:19.000000000","message":"Uploaded patch set 3: New patch set was added with same tree, parent tree, and commit message as Patch Set 2.\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":3},{"id":"1f300f70eca97582facef9ccdecb94ae856468bc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-07 23:27:18.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/64540e47631941b184d76a96e4e0beda\n\n- openstack-tox-py310-arm64 https://zuul.opendev.org/t/openstack/build/1e2d9d21906c4d98bc5e2f1c34b2c0fd : SUCCESS in 16m 41s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/15579ccc76f4438bad135a5dca602035 : SUCCESS in 12m 32s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/9889e0538cc34949a21c65dcb43471e7 : SUCCESS in 18m 24s (non-voting)","accounts_in_message":[],"_revision_number":3},{"id":"2ac1553907b0554ca7ace07bb1f06b43b1df0565","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-08 00:31:19.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/90faef7b85154c5b87c878debc8326f9\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/61a44d7db810414cb863b02d08d0f6a5 : SUCCESS in 19m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/44eac705b25e49a2bedd52ed82785cd4 : SUCCESS in 5m 00s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d2e21b9c14c04f878d0b04e65b8c03f2 : SUCCESS in 10m 55s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b716246d771c4101a7c5833d0611447f : SUCCESS in 6m 22s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b7544e7aea4b447e8f0cd6e5aa02f3a9 : SUCCESS in 13m 55s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/166908d4b11043e494ebaac346c4e829 : SUCCESS in 13m 10s\n- grenade https://zuul.opendev.org/t/openstack/build/7a624bf6e7714d0d91c9db3eca51a6a1 : SUCCESS in 45m 11s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/12f93a098d3c47d1bf8c2f7272c7809e : SUCCESS in 1h 23m 09s\n- keystoneclient-devstack-functional https://zuul.opendev.org/t/openstack/build/ae45a40156db4147a7f79912124415ea : SUCCESS in 14m 16s (non-voting)\n- keystone-tempest https://zuul.opendev.org/t/openstack/build/dbf9e8bdde4d4bf49df486ce3ee2671c : SUCCESS in 30m 24s\n- keystone-tempest-fips https://zuul.opendev.org/t/openstack/build/3fc86c98347e454e9bee51e0de4d8515 : FAILURE in 8m 28s (non-voting)\n- keystone-tempest-federation https://zuul.opendev.org/t/openstack/build/a73738c0715644a5b1a97985707f591b : FAILURE in 26m 49s (non-voting)\n- keystone-tempest-federation-k2k https://zuul.opendev.org/t/openstack/build/8a9544f8a55e40c2a315003f784c183f : SUCCESS in 13m 13s\n- keystone-tempest-oidc-federation https://zuul.opendev.org/t/openstack/build/d56b361c7792490abb2a445ca0ff3857 : SUCCESS in 23m 46s\n- keystone-tempest-ldap-domain-specific-driver https://zuul.opendev.org/t/openstack/build/f9ab5b942b3048259321e84bddf10263 : SUCCESS in 19m 09s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/35bbf2d65fd1494c87c3710380bedb2b : SUCCESS in 1h 01m 10s\n- keystone-protection-functional https://zuul.opendev.org/t/openstack/build/d5e2f08b8a814ac6aafb36bbbf18e848 : FAILURE in 32m 52s (non-voting)\n- codegenerator-openapi-identity-tips-with-api-ref https://zuul.opendev.org/t/openstack/build/45b2d6c7905d456cb63e129e307bc4a2 : SUCCESS in 6m 50s (non-voting)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"e3d560e08dea70e7458e87fd36f820f08bc07e8d","revisions":{"9f09397f37d31f8f9d62c59e3020198296d57df1":{"kind":"REWORK","_number":1,"created":"2026-03-06 22:31:53.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/60/979360/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/60/979360/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/60/979360/1"}}},"commit":{"parents":[{"commit":"af77e611cbe7362a1e901ad1cc56d50f923943d9","subject":"Merge \"tox: Drop basepython\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/af77e611cbe7362a1e901ad1cc56d50f923943d9"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-06 22:27:22.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-06 22:27:22.000000000","tz":60},"subject":"Widen OIDC Apache Location directives to match any identity provider","message":"Widen OIDC Apache Location directives to match any identity provider\n\nThe devstack OIDC Apache configuration hardcoded the identity provider\nID in LocationMatch and Location directives. This prevented testing\nwith multiple OIDC identity providers without modifying the Apache\nconfiguration.\n\nWiden the Location patterns from a literal IdP ID to \u0027.+\u0027 (any IdP).\nThese directives were already using regex matching (LocationMatch and\nLocation ~), so this is just a pattern change. Security is preserved\nbecause Keystone validates the OIDC issuer against the IdP\u0027s\nremote_ids at authentication time.\n\nGenerated-By: Claude (Anthropic)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I5d5a0d9d03a80d9a7e97e4378d2f7ed823416abd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/9f09397f37d31f8f9d62c59e3020198296d57df1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/9f09397f37d31f8f9d62c59e3020198296d57df1"}]},"branch":"refs/heads/master"},"3eed64a23c2f8574d8a30bab21c521df40bde294":{"kind":"NO_CHANGE","_number":2,"created":"2026-03-07 17:59:46.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/60/979360/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/60/979360/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/60/979360/2"}}},"commit":{"parents":[{"commit":"af77e611cbe7362a1e901ad1cc56d50f923943d9","subject":"Merge \"tox: Drop basepython\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/af77e611cbe7362a1e901ad1cc56d50f923943d9"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-06 22:27:22.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-07 17:47:18.000000000","tz":60},"subject":"Widen OIDC Apache Location directives to match any identity provider","message":"Widen OIDC Apache Location directives to match any identity provider\n\nThe devstack OIDC Apache configuration hardcoded the identity provider\nID in LocationMatch and Location directives. This prevented testing\nwith multiple OIDC identity providers without modifying the Apache\nconfiguration.\n\nWiden the Location patterns from a literal IdP ID to \u0027.+\u0027 (any IdP).\nThese directives were already using regex matching (LocationMatch and\nLocation ~), so this is just a pattern change. Security is preserved\nbecause Keystone validates the OIDC issuer against the IdP\u0027s\nremote_ids at authentication time.\n\nGenerated-By: Claude (Anthropic)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I5d5a0d9d03a80d9a7e97e4378d2f7ed823416abd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/3eed64a23c2f8574d8a30bab21c521df40bde294"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/3eed64a23c2f8574d8a30bab21c521df40bde294"}]},"branch":"refs/heads/master"},"e3d560e08dea70e7458e87fd36f820f08bc07e8d":{"kind":"NO_CHANGE","_number":3,"created":"2026-03-07 23:07:19.000000000","uploader":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"ref":"refs/changes/60/979360/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/60/979360/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/60/979360/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/60/979360/3"}}},"commit":{"parents":[{"commit":"af77e611cbe7362a1e901ad1cc56d50f923943d9","subject":"Merge \"tox: Drop basepython\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/af77e611cbe7362a1e901ad1cc56d50f923943d9"}]}],"author":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-06 22:27:22.000000000","tz":60},"committer":{"name":"Boris Bobrov","email":"b.bobrov@sap.com","date":"2026-03-07 22:35:08.000000000","tz":60},"subject":"Widen OIDC Apache Location directives to match any identity provider","message":"Widen OIDC Apache Location directives to match any identity provider\n\nThe devstack OIDC Apache configuration hardcoded the identity provider\nID in LocationMatch and Location directives. This prevented testing\nwith multiple OIDC identity providers without modifying the Apache\nconfiguration.\n\nWiden the Location patterns from a literal IdP ID to \u0027.+\u0027 (any IdP).\nThese directives were already using regex matching (LocationMatch and\nLocation ~), so this is just a pattern change. Security is preserved\nbecause Keystone validates the OIDC issuer against the IdP\u0027s\nremote_ids at authentication time.\n\nGenerated-By: Claude (Anthropic)\nSigned-off-by: Boris Bobrov \u003cb.bobrov@sap.com\u003e\nChange-Id: I5d5a0d9d03a80d9a7e97e4378d2f7ed823416abd\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/e3d560e08dea70e7458e87fd36f820f08bc07e8d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/e3d560e08dea70e7458e87fd36f820f08bc07e8d"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
