Bumps the dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [bootsnap](https://github.com/rails/bootsnap) | `1.24.5` | `1.24.6` | | [doorkeeper-openid_connect](https://github.com/doorkeeper-gem/doorkeeper-openid_connect) | `1.9.0` | `1.10.1` | | [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.224.0` | `1.225.0` | | [image_processing](https://github.com/janko/image_processing) | `2.0.1` | `2.0.2` | | [overcommit](https://github.com/sds/overcommit) | `0.69.0` | `0.70.0` |
Updates `bootsnap` from 1.24.5 to 1.24.6 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rails/bootsnap/blob/main/CHANGELOG.md">bootsnap's changelog</a>.</em></p> <blockquote> <h1>1.24.6</h1> <ul> <li>Fix detection of Ruby bug <a href="https://redirect.github.com/rails/bootsnap/issues/22023">#22023</a> on some patch versions of Ruby 3.4, and properly apply the workaround.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rails/bootsnap/commit/026e183e7f4f4f0eab52d6b9eebafe548cde08a2"><code>026e183</code></a> Release 1.24.6</li> <li><a href="https://github.com/rails/bootsnap/commit/263e34652b4884da97b5e4974ef53fce5753b890"><code>263e346</code></a> Merge pull request <a href="https://redirect.github.com/rails/bootsnap/issues/556">#556</a> from byroot/remove-canary</li> <li><a href="https://github.com/rails/bootsnap/commit/7c31cd81f39285ed43898377ff8af2dcf0d851e9"><code>7c31cd8</code></a> Check for [Bug <a href="https://redirect.github.com/rails/bootsnap/issues/22023">#22023</a>] by checking Ruby version rather than a canary</li> <li><a href="https://github.com/rails/bootsnap/commit/54eba7643b359d85d518374af9e8b126a25a99d7"><code>54eba76</code></a> Merge pull request <a href="https://redirect.github.com/rails/bootsnap/issues/554">#554</a> from byroot/namespace-overflow</li> <li><a href="https://github.com/rails/bootsnap/commit/fe963d56fc5981eb5c08f4352ca2937226ef2c48"><code>fe963d5</code></a> bs_cache_path: account for namespace length</li> <li><a href="https://github.com/rails/bootsnap/commit/7b42db6610163d682fb27f986f7155882844ba2e"><code>7b42db6</code></a> Merge pull request <a href="https://redirect.github.com/rails/bootsnap/issues/553">#553</a> from arpitjain099/chore/declare-workflow-perms</li> <li><a href="https://github.com/rails/bootsnap/commit/113b184cc52613c543af3e8155cab24851fd9d35"><code>113b184</code></a> ci: add permissions: contents: read to ci</li> <li>See full diff in <a href="https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6">compare view</a></li> </ul> </details> <br /> Updates `doorkeeper-openid_connect` from 1.9.0 to 1.10.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/releases">doorkeeper-openid_connect's releases</a>.</em></p> <blockquote> <h2>v1.10.1</h2> <ul> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/294">#294</a> Drop stale <code>Metrics/ClassLength</code> and <code>Metrics/BlockLength</code> overrides from <code>.rubocop_todo.yml</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/293">#293</a> Drop <code>Naming/VariableNumber</code> from <code>.rubocop_todo.yml</code> and normalise test variable names</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/291">#291</a> Document multi-namespace mount pattern for multiple resource owner models (<a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/192">#192</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/292">#292</a> Drop formatting cops from <code>.rubocop_todo.yml</code> and align trailing-comma style with upstream doorkeeper</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/296">#296</a> Fix the <code>prompt</code> parameter being rejected with <code>invalid_request</code> when it contains leading or duplicate spaces (e.g. <code>prompt=%20none</code>) — blank entries in the space-delimited value are now ignored</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/299">#299</a> Raise <code>InvalidConfiguration</code> when the <code>issuer</code> config resolves to a blank value instead of silently advertising an empty <code>issuer</code> in the discovery document. Since v1.10.0 an arity-2 <code>issuer</code> block receives <code>(resource_owner, application)</code> — both <code>nil</code> in the discovery context — so a block relying on the old v1.9.0 request argument could return <code>nil</code> and produce a discovery <code>issuer</code> that mismatched the ID token <code>iss</code> (<a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/298">#298</a>)</li> </ul> <h2>v1.10.0</h2> <ul> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/241">#241</a> Fix NameError on doorkeeper master by deferring AR model loading in run_hooks (see <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper/pull/1804">Doorkeeper PR</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/242">#242</a> Fix <code>NoMethodError</code> for openid_request in testing environments.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/246">#246</a> Fix <code>at_hash</code> to use correct hash algorithm based on <code>signing_algorithm</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/250">#250</a> Return configured <code>issuer</code> instead of <code>root_url</code> in WebFinger response (thanks to <a href="https://github.com/sato11"><code>@sato11</code></a> for the original work in <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/172">#172</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/248">#248</a> Fix <code>max_age</code> always triggering reauthentication when <code>auth_time_from_resource_owner</code> returns Integer</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/254">#254</a> <strong>Breaking:</strong> Omit <code>expires_in</code> from the <code>response_type=id_token</code> response (OIDC Core §3.2.2.5 — <code>expires_in</code> represents the Access Token lifetime; it is still returned for <code>response_type=id_token token</code>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/252">#252</a> Treat <code>auth_time_from_resource_owner</code> as optional in <code>IdToken</code> — omit <code>auth_time</code> claim when unconfigured instead of raising <code>InvalidConfiguration</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/256">#256</a> Accept non-callable values (symbol / string) for the <code>protocol</code> config option, matching the pattern used by <code>issuer</code> / <code>signing_algorithm</code> / <code>signing_key</code> / <code>expiration</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/258">#258</a> Skip <code>IdToken</code> construction on password grants without the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/259">#259</a> Skip <code>IdToken</code> construction on authorization code grants without the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/261">#261</a> Fix obsolete RuboCop configuration (<code>require:</code> → <code>plugins:</code>, <code>RSpec/FilePath</code> split, remove <code>Capybara/FeatureMethods</code>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/263">#263</a> <strong>Security/Breaking:</strong> Determine dynamically registered client's <code>confidential</code> flag from <code>token_endpoint_auth_method</code> per RFC 7591 — previously every dynamically registered client was created as public (<code>confidential: false</code>), which let callers authenticate with only <code>client_id</code> (<code>by_uid_and_secret(uid, nil)</code> bypass). Default is now <code>client_secret_basic</code> (confidential); <code>none</code> produces a public client; unsupported values (e.g. <code>private_key_jwt</code>) are rejected with <code>invalid_client_metadata</code>. Also derive <code>token_endpoint_auth_methods_supported</code> in the response from <code>Doorkeeper.configuration.client_credentials_methods</code> instead of a hardcoded list, matching <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/236">#236</a></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/264">#264</a> Apply safe RuboCop autocorrections and fix resulting artifacts</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/265">#265</a> Add Dynamic Client Registration section to README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/266">#266</a> Validate <code>application_type</code>, <code>response_types</code>, and <code>grant_types</code> parameters in dynamic client registration per RFC 7591 — reject unsupported values with <code>invalid_client_metadata</code> and echo the requested values back in the registration response, instead of silently ignoring them and returning the server's global configuration</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/267">#267</a> Add <code>authorize_dynamic_client_registration</code> config option to gate the dynamic client registration endpoint per RFC 7591 §3.1 — when set to a callable, the block is evaluated in the controller scope (with access to <code>request</code>, <code>params</code>, <code>request.headers</code>, etc.) and falsy return values reject the request with <code>401 invalid_token</code>. Default is <code>nil</code> so the endpoint remains open for backward compatibility; consumers should configure this to validate an Initial Access Token (or any other authorization scheme) before allowing client registration</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/268">#268</a> Update Dynamic Client Registration README for validated metadata parameters</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/269">#269</a> Document <code>authorize_dynamic_client_registration</code> in README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/270">#270</a> Document the unified issuer block signature in README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/278">#278</a> Test against Ruby 4.0.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/271">#271</a> <strong>Security:</strong> Add <code>auth_time_from_session</code> config for per-session <code>max_age</code> enforcement. The legacy <code>auth_time_from_resource_owner</code> cannot distinguish between concurrent sessions and is now deprecated for <code>max_age</code> use (see <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/150">#150</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/272">#272</a> Document <code>auth_time_from_session</code> in README (follow-up to <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/pull/271">#271</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/273">#273</a> <strong>Security/Hardening:</strong> Merge framework-controlled registered claims last — <code>iss</code>/<code>sub</code>/<code>aud</code>/<code>exp</code>/<code>iat</code>/<code>nonce</code>/<code>auth_time</code> for the ID Token and <code>sub</code> for UserInfo — so a custom claim block can no longer override security-critical values. No legitimate configuration relied on this; custom claims that intentionally shadowed a registered claim name will now be ignored for that key (OIDC Core §2 / §3.1.3.7 / §5.3.2).</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/276">#276</a> Get RuboCop to zero offenses: fix <code>Lint/MissingSuper</code> in <code>IdTokenResponse</code>, replace <code>puts</code> with <code>warn</code> for deprecation notices, and modernise spec style</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/277">#277</a> Fix README inaccuracies (<code>signing_algorithm</code> description and link, <code>discovery_url_options</code> endpoint list, <code>oauth-authorization-server</code> route) and use constant-time comparison in the DCR authorization example to prevent timing attacks on the Initial Access Token</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/279">#279</a> Return <code>account_selection_required</code> when a <code>prompt=select_account</code> handler does not generate a response, per <a href="https://openid.net/specs/openid-connect-core-1_0.html#AuthError">OIDC Core 1.0 §3.1.2.6</a> — previously the authorization silently continued without account selection. Adds the missing <code>Errors::AccountSelectionRequired</code> class, mirroring the existing <code>login_required</code> backstop for <code>reauthenticate_resource_owner</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/275">#275</a> Return <code>login_required</code> for <code>max_age</code> reauthentication when <code>prompt=none</code>, instead of triggering the interactive <code>reauthenticate_resource_owner</code> flow (OIDC Core §3.1.2.1)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/284">#284</a> Document <code>acr</code> / <code>amr</code> claims in README — show how to expose Authentication Context Class Reference and Authentication Methods References via the <code>claim</code> DSL, with callouts for the <code>response:</code> and <code>scope:</code> defaults that silently bite</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/288">#288</a> Document <code>offline_access</code> scope recipe in README — show how to wire <code>use_refresh_token</code> with scope-based filtering for OIDC offline access</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/281">#281</a> Fix <code>NoMethodError</code> / <code>DoubleRenderError</code> when <code>resource_owner_authenticator</code> redirects with a truthy non-model value (e.g. <code>current_user || redirect_to(login_url)</code>). Normalize the leaked value to <code>nil</code> when <code>performed?</code> and add missing <code>if owner</code> guard on <code>select_account</code>.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/285">#285</a> Document custom <code>jwks_uri</code> path pattern in README — show how to advertise a non-default path in the discovery document using Rails' <code>direct</code> URL helper</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/283">#283</a> Support multiple signing keys in the JWKS response — <code>signing_key</code> now also accepts an array (and callables returning an array). The first entry is the active key used to sign new ID tokens; the remaining entries are published in the JWKS so clients can still validate tokens signed with a retired key during a rotation window. Single-value and callable forms continue to work unchanged</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/286">#286</a> Allow claims to be assigned to multiple scopes via <code>scope: [:profile, :all_data]</code> — the claim is returned whenever the access token grants any of the listed scopes. <strong>Note:</strong> the previously implicit <code>Claim#scope=</code> writer (from <code>attr_accessor :scope</code>) is no longer provided; rebuild the claim instead of mutating it</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/287">#287</a> Add <code>apply_prompt_to_non_oidc_requests</code> option to honor the <code>prompt</code> parameter on plain OAuth requests that do not include the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/282">#282</a> Allow <code>prompt=none</code> reauthorization with a narrower subset of previously-granted scopes (issue <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/63">#63</a>). Per RFC 6749 §1.5, narrower-or-equal scopes do not require fresh user consent; previously these requests returned <code>consent_required</code>.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/290">#290</a> Freeze <code>Claim#scopes</code> and <code>Claim#response</code> arrays at construction so callers can't accidentally mutate the claim's internal state from outside</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/297">#297</a> Fix the generated initializer's <code>issuer</code> example referencing an undefined <code>request</code> local (the block parameter is <code>_request</code>), which raised <code>NameError</code> when copied verbatim</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/blob/master/CHANGELOG.md">doorkeeper-openid_connect's changelog</a>.</em></p> <blockquote> <h2>v1.10.1 (2026-06-03)</h2> <ul> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/294">#294</a> Drop stale <code>Metrics/ClassLength</code> and <code>Metrics/BlockLength</code> overrides from <code>.rubocop_todo.yml</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/293">#293</a> Drop <code>Naming/VariableNumber</code> from <code>.rubocop_todo.yml</code> and normalise test variable names</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/291">#291</a> Document multi-namespace mount pattern for multiple resource owner models (<a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/192">#192</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/292">#292</a> Drop formatting cops from <code>.rubocop_todo.yml</code> and align trailing-comma style with upstream doorkeeper</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/296">#296</a> Fix the <code>prompt</code> parameter being rejected with <code>invalid_request</code> when it contains leading or duplicate spaces (e.g. <code>prompt=%20none</code>) — blank entries in the space-delimited value are now ignored</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/299">#299</a> Raise <code>InvalidConfiguration</code> when the <code>issuer</code> config resolves to a blank value instead of silently advertising an empty <code>issuer</code> in the discovery document. Since v1.10.0 an arity-2 <code>issuer</code> block receives <code>(resource_owner, application)</code> — both <code>nil</code> in the discovery context — so a block relying on the old v1.9.0 request argument could return <code>nil</code> and produce a discovery <code>issuer</code> that mismatched the ID token <code>iss</code> (<a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/298">#298</a>)</li> </ul> <h2>v1.10.0 (2026-06-01)</h2> <blockquote> <p>[!IMPORTANT]</p> <ul> <li><strong>Breaking (arity-2 issuer blocks):</strong> <code>resolve_issuer</code> now dispatches arity-2 blocks with <code>(resource_owner, application)</code> in all contexts, including discovery. In v1.9.0 <code>DiscoveryController</code> passed <code>request</code> as the first argument; existing arity-2 blocks that relied on this receive <code>(nil, nil)</code> in v1.10.0 and should migrate to arity-3 — see <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/298">#298</a> for details and migration examples</li> </ul> </blockquote> <ul> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/241">#241</a> Fix NameError on doorkeeper master by deferring AR model loading in run_hooks (see <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper/pull/1804">Doorkeeper PR</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/242">#242</a> Fix <code>NoMethodError</code> for openid_request in testing environments.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/246">#246</a> Fix <code>at_hash</code> to use correct hash algorithm based on <code>signing_algorithm</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/250">#250</a> Return configured <code>issuer</code> instead of <code>root_url</code> in WebFinger response (thanks to <a href="https://github.com/sato11"><code>@sato11</code></a> for the original work in <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/172">#172</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/248">#248</a> Fix <code>max_age</code> always triggering reauthentication when <code>auth_time_from_resource_owner</code> returns Integer</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/254">#254</a> <strong>Breaking:</strong> Omit <code>expires_in</code> from the <code>response_type=id_token</code> response (OIDC Core §3.2.2.5 — <code>expires_in</code> represents the Access Token lifetime; it is still returned for <code>response_type=id_token token</code>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/252">#252</a> Treat <code>auth_time_from_resource_owner</code> as optional in <code>IdToken</code> — omit <code>auth_time</code> claim when unconfigured instead of raising <code>InvalidConfiguration</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/256">#256</a> Accept non-callable values (symbol / string) for the <code>protocol</code> config option, matching the pattern used by <code>issuer</code> / <code>signing_algorithm</code> / <code>signing_key</code> / <code>expiration</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/258">#258</a> Skip <code>IdToken</code> construction on password grants without the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/259">#259</a> Skip <code>IdToken</code> construction on authorization code grants without the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/261">#261</a> Fix obsolete RuboCop configuration (<code>require:</code> → <code>plugins:</code>, <code>RSpec/FilePath</code> split, remove <code>Capybara/FeatureMethods</code>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/263">#263</a> <strong>Security/Breaking:</strong> Determine dynamically registered client's <code>confidential</code> flag from <code>token_endpoint_auth_method</code> per RFC 7591 — previously every dynamically registered client was created as public (<code>confidential: false</code>), which let callers authenticate with only <code>client_id</code> (<code>by_uid_and_secret(uid, nil)</code> bypass). Default is now <code>client_secret_basic</code> (confidential); <code>none</code> produces a public client; unsupported values (e.g. <code>private_key_jwt</code>) are rejected with <code>invalid_client_metadata</code>. Also derive <code>token_endpoint_auth_methods_supported</code> in the response from <code>Doorkeeper.configuration.client_credentials_methods</code> instead of a hardcoded list, matching <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/236">#236</a></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/264">#264</a> Apply safe RuboCop autocorrections and fix resulting artifacts</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/265">#265</a> Add Dynamic Client Registration section to README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/266">#266</a> Validate <code>application_type</code>, <code>response_types</code>, and <code>grant_types</code> parameters in dynamic client registration per RFC 7591 — reject unsupported values with <code>invalid_client_metadata</code> and echo the requested values back in the registration response, instead of silently ignoring them and returning the server's global configuration</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/267">#267</a> Add <code>authorize_dynamic_client_registration</code> config option to gate the dynamic client registration endpoint per RFC 7591 §3.1 — when set to a callable, the block is evaluated in the controller scope (with access to <code>request</code>, <code>params</code>, <code>request.headers</code>, etc.) and falsy return values reject the request with <code>401 invalid_token</code>. Default is <code>nil</code> so the endpoint remains open for backward compatibility; consumers should configure this to validate an Initial Access Token (or any other authorization scheme) before allowing client registration</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/268">#268</a> Update Dynamic Client Registration README for validated metadata parameters</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/269">#269</a> Document <code>authorize_dynamic_client_registration</code> in README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/270">#270</a> Document the unified issuer block signature in README</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/278">#278</a> Test against Ruby 4.0.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/271">#271</a> <strong>Security:</strong> Add <code>auth_time_from_session</code> config for per-session <code>max_age</code> enforcement. The legacy <code>auth_time_from_resource_owner</code> cannot distinguish between concurrent sessions and is now deprecated for <code>max_age</code> use (see <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/150">#150</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/272">#272</a> Document <code>auth_time_from_session</code> in README (follow-up to <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/pull/271">#271</a>)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/273">#273</a> <strong>Security/Hardening:</strong> Merge framework-controlled registered claims last — <code>iss</code>/<code>sub</code>/<code>aud</code>/<code>exp</code>/<code>iat</code>/<code>nonce</code>/<code>auth_time</code> for the ID Token and <code>sub</code> for UserInfo — so a custom claim block can no longer override security-critical values. No legitimate configuration relied on this; custom claims that intentionally shadowed a registered claim name will now be ignored for that key (OIDC Core §2 / §3.1.3.7 / §5.3.2).</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/276">#276</a> Get RuboCop to zero offenses: fix <code>Lint/MissingSuper</code> in <code>IdTokenResponse</code>, replace <code>puts</code> with <code>warn</code> for deprecation notices, and modernise spec style</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/277">#277</a> Fix README inaccuracies (<code>signing_algorithm</code> description and link, <code>discovery_url_options</code> endpoint list, <code>oauth-authorization-server</code> route) and use constant-time comparison in the DCR authorization example to prevent timing attacks on the Initial Access Token</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/279">#279</a> Return <code>account_selection_required</code> when a <code>prompt=select_account</code> handler does not generate a response, per <a href="https://openid.net/specs/openid-connect-core-1_0.html#AuthError">OIDC Core 1.0 §3.1.2.6</a> — previously the authorization silently continued without account selection. Adds the missing <code>Errors::AccountSelectionRequired</code> class, mirroring the existing <code>login_required</code> backstop for <code>reauthenticate_resource_owner</code></li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/275">#275</a> Return <code>login_required</code> for <code>max_age</code> reauthentication when <code>prompt=none</code>, instead of triggering the interactive <code>reauthenticate_resource_owner</code> flow (OIDC Core §3.1.2.1)</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/284">#284</a> Document <code>acr</code> / <code>amr</code> claims in README — show how to expose Authentication Context Class Reference and Authentication Methods References via the <code>claim</code> DSL, with callouts for the <code>response:</code> and <code>scope:</code> defaults that silently bite</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/288">#288</a> Document <code>offline_access</code> scope recipe in README — show how to wire <code>use_refresh_token</code> with scope-based filtering for OIDC offline access</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/281">#281</a> Fix <code>NoMethodError</code> / <code>DoubleRenderError</code> when <code>resource_owner_authenticator</code> redirects with a truthy non-model value (e.g. <code>current_user || redirect_to(login_url)</code>). Normalize the leaked value to <code>nil</code> when <code>performed?</code> and add missing <code>if owner</code> guard on <code>select_account</code>.</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/285">#285</a> Document custom <code>jwks_uri</code> path pattern in README — show how to advertise a non-default path in the discovery document using Rails' <code>direct</code> URL helper</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/283">#283</a> Support multiple signing keys in the JWKS response — <code>signing_key</code> now also accepts an array (and callables returning an array). The first entry is the active key used to sign new ID tokens; the remaining entries are published in the JWKS so clients can still validate tokens signed with a retired key during a rotation window. Single-value and callable forms continue to work unchanged</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/286">#286</a> Allow claims to be assigned to multiple scopes via <code>scope: [:profile, :all_data]</code> — the claim is returned whenever the access token grants any of the listed scopes. <strong>Note:</strong> the previously implicit <code>Claim#scope=</code> writer (from <code>attr_accessor :scope</code>) is no longer provided; rebuild the claim instead of mutating it</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/287">#287</a> Add <code>apply_prompt_to_non_oidc_requests</code> option to honor the <code>prompt</code> parameter on plain OAuth requests that do not include the <code>openid</code> scope</li> <li><a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/282">#282</a> Allow <code>prompt=none</code> reauthorization with a narrower subset of previously-granted scopes (issue <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/63">#63</a>). Per RFC 6749 §1.5, narrower-or-equal scopes do not require fresh user consent; previously these requests returned <code>consent_required</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/401e5fcdcd875205f9ae0b69a125e854ea472654"><code>401e5fc</code></a> Merge pull request <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/301">#301</a> from 55728/release/v1.10.1</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/6ab16258090665eefa6205b77f2d7a9cf112fdc5"><code>6ab1625</code></a> Release 1.10.1 🎉</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/5620cfe0aaf0dddd9b48f4d780329826129533a2"><code>5620cfe</code></a> Merge pull request <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/299">#299</a> from 55728/fix/issue-298-blank-issuer-guard</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/fbf4f687cda74b88f3c36668b879d786f460b631"><code>fbf4f68</code></a> Merge pull request <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/296">#296</a> from 55728/fix/prompt-leading-whitespace</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/f8ca5af5d56779e094969b92612853f7dad71c82"><code>f8ca5af</code></a> Merge pull request <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/300">#300</a> from 55728/docs/changelog-v1.10.0-arity-2-breaking-note</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/7ce74737b477857c170c7ebb6fb48178501d3ff1"><code>7ce7473</code></a> Add breaking-change note for arity-2 issuer blocks to v1.10.0 CHANGELOG</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/4d4e791d0c52234addbfc1ef88305661e9967f40"><code>4d4e791</code></a> Raise on blank issuer in resolve_issuer (<a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/298">#298</a>)</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/aed9af51f73d3424593f6ede314ee36cddab8759"><code>aed9af5</code></a> Merge pull request <a href="https://redirect.github.com/doorkeeper-gem/doorkeeper-openid_connect/issues/292">#292</a> from 55728/chore/rubocop-todo-phase1-formatting</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/2c7b8147210734ddc0326aaf0b93f6e0b6311db5"><code>2c7b814</code></a> Reformat cramped multiline closers to avoid ,) and ,]</li> <li><a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/commit/63dcfa639ba49d0f67f3c8d0745072d110d619b2"><code>63dcfa6</code></a> Set hash/argument indentation to consistent style</li> <li>Additional commits viewable in <a href="https://github.com/doorkeeper-gem/doorkeeper-openid_connect/compare/v1.9.0...v1.10.1">compare view</a></li> </ul> </details> <br /> Updates `aws-sdk-s3` from 1.224.0 to 1.225.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md">aws-sdk-s3's changelog</a>.</em></p> <blockquote> <h2>1.225.0 (2026-06-02)</h2> <ul> <li>Feature - Adding new BDD representation of endpoint ruleset</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/aws/aws-sdk-ruby/commits">compare view</a></li> </ul> </details> <br /> Updates `image_processing` from 2.0.1 to 2.0.2 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/janko/image_processing/blob/master/CHANGELOG.md">image_processing's changelog</a>.</em></p> <blockquote> <h2>2.0.2 (2026-06-03)</h2> <ul> <li>Raise <code>LoadError</code> instead of <code>ImageProcessing::Error</code> when soft dependencies are missing (<a href="https://github.com/bdewater-thatch"><code>@bdewater-thatch</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/janko/image_processing/commit/7d89c0196cc369428126bcba075ff53485099ef2"><code>7d89c01</code></a> Bump to 2.0.2</li> <li><a href="https://github.com/janko/image_processing/commit/7f3830410f15ed2eac601f5b638dd2e5365f4243"><code>7f38304</code></a> Create a new <code>LoadError</code> for missing dependencies</li> <li><a href="https://github.com/janko/image_processing/commit/996862c803e85c14988b556a7f42f3c8f9d2aa96"><code>996862c</code></a> Warn and reraise LoadError instead of raising custom error (<a href="https://redirect.github.com/janko/image_processing/issues/143">#143</a>)</li> <li><a href="https://github.com/janko/image_processing/commit/a64dbd59ece625934b9fe2c7749b45758c5f915a"><code>a64dbd5</code></a> Inline dhash-vips</li> <li>See full diff in <a href="https://github.com/janko/image_processing/compare/v2.0.1...v2.0.2">compare view</a></li> </ul> </details> <br /> Updates `overcommit` from 0.69.0 to 0.70.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sds/overcommit/releases">overcommit's releases</a>.</em></p> <blockquote> <h2>0.70.0</h2> <h2>What's Changed</h2> <ul> <li>Add oxc pre-commit hooks by <a href="https://github.com/benmelz"><code>@benmelz</code></a> in <a href="https://redirect.github.com/sds/overcommit/pull/879">sds/overcommit#879</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0">https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/sds/overcommit/blob/main/CHANGELOG.md">overcommit's changelog</a>.</em></p> <blockquote> <h2>0.70.0</h2> <ul> <li>Add <code>oxfmt</code> and <code>oxlint</code> pre-commit hooks</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sds/overcommit/commit/141b0aedd314bb01983eab9653aa034799c68e92"><code>141b0ae</code></a> Cut version 0.70.0 (<a href="https://redirect.github.com/sds/overcommit/issues/880">#880</a>)</li> <li><a href="https://github.com/sds/overcommit/commit/032af772175087eb2e5f0026dcbfa30c8112b35b"><code>032af77</code></a> Add oxc pre-commit hooks (<a href="https://redirect.github.com/sds/overcommit/issues/879">#879</a>)</li> <li><a href="https://github.com/sds/overcommit/commit/92b22f0b50b1fe7d83a9fb3103976a74ca8cbb18"><code>92b22f0</code></a> Add Ruby 3.4 and 4.0 to CI matrix (<a href="https://redirect.github.com/sds/overcommit/issues/878">#878</a>)</li> <li>See full diff in <a href="https://github.com/sds/overcommit/compare/v0.69.0...v0.70.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> You can view, comment on, or merge this pull request online at: https://github.com/openstreetmap/openstreetmap-website/pull/7131 -- Commit Summary -- * Bump the dependencies group with 5 updates -- File Changes -- M Gemfile.lock (24) -- Patch Links -- https://github.com/openstreetmap/openstreetmap-website/pull/7131.patch https://github.com/openstreetmap/openstreetmap-website/pull/7131.diff -- Reply to this email directly or view it on GitHub: https://github.com/openstreetmap/openstreetmap-website/pull/7131 You are receiving this because you are subscribed to this thread. Message ID: <openstreetmap/openstreetmap-website/pull/[email protected]>
_______________________________________________ rails-dev mailing list [email protected] https://lists.openstreetmap.org/listinfo/rails-dev
