Skip to content

fix: SAML spec follow-up from the #99 review (5.4.1) - #105

Merged
porcellus merged 1 commit into
5.4from
fix/5.4-review-followup
Oct 28, 2026
Merged

porcellus merged 1 commit into
5.4from
fix/5.4-review-followup

Conversation

@porcellus

Copy link
Copy Markdown
Collaborator

Follow-up to #99 (merged before the review landed) — 5.4.1

Applies Tamás's review on #99:

  • POST /recipe/saml/user: clientId is required (core parses it with nullable=false); I had it wrong in cb32ab7.
  • acsURLs is now documented in 5.4 (decision: ADR-007's "no spec has acsURLs" premise no longer holds, since allowIDPInitiatedLogin: true is a 400 without it on every current core): optional allow-list on the PUT request (non-empty, non-blank strings), required when allowIDPInitiatedLogin is true, present on the client object when set, INVALID_CLIENT_ERROR on login for an acsURL outside the list, IDP_LOGIN_DISALLOWED_ERROR on the callback for an IdP-initiated login without a list. Marked "since core 11.3.8 / 11.4.8 / 12.0.11 / 12.1.2 / 12.2.1 / 12.3.1". 5.8 keeps only what it adds on top (null clears, required-once-set).
  • Version notes for cores that declare 5.4 but predate the advisories: single-use RelayState and the InResponseTo / Destination / Recipient / replay checks (GHSA-3r7x-rhvc-fw28), INVALID_CLIENT_ERROR instead of a 500 for an unknown issuer on IdP-initiated responses, claims from the first (audience-validated) assertion only (GHSA-wfg2-vqfg-rqh6), the 12.0 mail / email fallbacks, and the 11.x ?-vs-& login URL bug.
  • samlResponse that is not valid base64: documented as a 500 on current cores (worth a core fix to map IllegalArgumentException to 400; not done here).
  • CHANGELOG states that GET /.well-known/sp-metadata and /recipe/saml/legacy/* are intentionally outside the CDI.

After merging: merge 5.4 forward into 5.5 (and on to 5.6 / 5.7 / 5.8); the later PRs don't duplicate these changes.

- /recipe/saml/user: clientId is required
- document acsURLs (PUT request, client object, login/callback error cases)
  with the core versions it exists in; allowIDPInitiatedLogin requires it
- version notes for pre-GHSA-3r7x / pre-GHSA-wfg2 5.4 cores, the 12.0 email
  fallbacks and the 11.x login URL query-string bug
- note the 500 on undecodable samlResponse
- CHANGELOG: sp-metadata and legacy routes are intentionally out of the CDI

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SamDP1AS8ybBhCc1CWBWWk
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant