Skip to content

chore(main): release 0.58.0 - #681

Merged
osanderson merged 1 commit into
mainfrom
release-please--branches--main
Oct 20, 2026
Merged

osanderson merged 1 commit into
mainfrom
release-please--branches--main

Conversation

@osanderson

@osanderson osanderson commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

🤖 I have created a release beep boop

0.58.0 (2026-10-20)

⚠ BREAKING CHANGES

  • fapihttp: a fapihttp.NewClient client no longer connects to a server that offers, under TLS 1.2, only cipher suites other than the four ECDHE AES-GCM ones.
  • client.NewTokenSetSealer, client.NewBackchannelSessionSealer, client/sessioncookie and server/interactioncookie refuse a key made entirely of printable text. Generate keys with crypto/rand and decode an encoded key before passing it.
  • server: with Config.Federation.EntityID set, server.New refuses a Dependencies.Keys whose federation entity signing key is also one of the server's protocol signing keys. Give keys.FederationEntitySigning its own key.
  • client: client.New refuses Limits.RequestObjectLifetime over 60 minutes for a client that signs request objects.
  • client: under AssuranceProduction, client.New refuses Config.AuthorizationResponseIssPolicy TolerateAbsentAuthorizationResponseIss. Set RequireAuthorizationResponseIss.
  • client: under AssuranceProduction, client.New refuses Config.CallbackBinding CallbackBindingDeviceLocalStore when Dependencies.Sessions declares CrossInstanceConsistent. A web client uses CallbackBindingSessionHandle.
  • client: a Scope element holding more than one scope, such as "openid profile", is now refused with invalid_request. Pass each scope as its own element.
  • resource: under AssuranceProduction, resource.NewVerifier refuses an OpaqueAccessTokens with no Audience. Set it to this resource server's identifier, or to the authorization server's issuer when clients name no resource indicator.
  • server: under NoClientCertificateChainTrust, automatic registration no longer registers tls_client_auth or its SAN variants unless AutomaticRegistration.AllowedClientAuthMethods names them, so an RP offering only those methods is no longer registered. A deployment whose TLS termination verifies client certificate chains lists the methods it accepts there.

Features

  • client: add Config.RequireSignedUserInfo (4caef6f)
  • client: follow the authorization server's attestation challenges (091fc13)
  • server: accept draft-12 client attestations and enforce its client_id, freshness and binding rules (c7e764f)
  • server: add Config.MutualTLSAtEndpoints, and don't advertise tls_client_auth under NoPKIClientAuthentication (14d432f)

Bug Fixes

  • client: cap a CIBA interval instead of letting it overflow (386434a)
  • client: keep the authorization endpoint's own query in the authorization URL (7ca5773)
  • client: record the requested scope when a token response omits it (984009f)
  • client: refuse a request object lifetime over 60 minutes (075f3eb)
  • client: refuse a Scope element that isn't one scope-token (fab4b93)
  • client: refuse an authorization extension named for a reserved parameter (65e2ac7)
  • client: refuse another issuer's token set at UserInfo and protected resources (0ec01d9)
  • client: refuse CallbackBindingDeviceLocalStore over a shared sessions store in production (658e04f)
  • client: refuse TolerateAbsentAuthorizationResponseIss under production assurance (7aec52f)
  • client: reuse a server's DPoP nonce by default (d05045d)
  • client: use the userinfo mTLS alias, and apply aliases in NewFromDiscovery (a9a8dc5)
  • conformance: write resource errors with the resource package's own challenge (52bd48c)
  • fapihttp: offer only the ECDHE AES-GCM cipher suites under TLS 1.2 (8660a92)
  • federation: don't let null or empty RP metadata meet an essential policy (cf067f6)
  • federation: don't let the first caller's cancellation fail a shared automatic registration (557ed49)
  • federation: refuse a parsed statement carrying a claim its kind may not (aae9a6a)
  • federation: refuse a resolve request naming a Trust Anchor the Resolver doesn't trust (f19be8f)
  • federation: refuse a trust mark whose delegation has no owner to validate it against (91e89fb)
  • federation: refuse to publish private key material in a statement's jwks (4d36510)
  • normalise a DPoP proof's htu path before comparing it (c202414)
  • refuse a sealing key made entirely of printable text (39fc891)
  • refuse JWTs dated in the future and allow clock skew on their lifetime (63df91e)
  • resource: accept more than one space after the Authorization scheme (b6e038c)
  • resource: require OpaqueAccessTokens.Audience under production assurance (ee72139)
  • resource: send the next DPoP nonce with an insufficient_scope error (913a647)
  • server: accept a CIBA request's DPoP proof naming the endpoint's mTLS alias (e29ba9b)
  • server: accept a request object typed "JWT" (1a4262b)
  • server: add NoPKIClientAuthentication and use it where no client uses tls_client_auth (7a4b7fd)
  • server: answer malformed or unsupported authorization_details with invalid_authorization_details (30f8a45)
  • server: answer revocation of an opaque access token with unsupported_token_type (8f4fda2)
  • server: bound and linearise the authorization request's prompt (4cdd0a3)
  • server: don't panic in CIBA calls when CIBA isn't configured (f280c13)
  • server: ignore claims a client assertion carries beyond the ones it reads (4abe326)
  • server: ignore client_notification_token from a poll-mode CIBA client (6e91878)
  • server: mark PAR, CIBA and error responses uncacheable, and omit an empty scope (ec5f073)
  • server: match a form request's media type case-insensitively and whole (716327a)
  • server: record the issuer in stored requests and grants, and refuse another issuer's (202d008)
  • server: refuse a federation entity key that is also a protocol key (114fb8a)
  • server: refuse a response_mode the server won't answer in (01781de)
  • server: refuse a response_type other than code as unsupported_response_type (ab86aec)
  • server: register tls_client_auth automatically only when its chain is verified (4a91d2a)
  • server: require client_id in an automatically registered client's request object (76c61e4)
  • serverresource: never ask the claims source about an empty subject at UserInfo (ed50c72)
  • server: send a fresh DPoP nonce with a token error once the request's nonce is spent (2839202)
  • server: treat a form parameter sent without a value as omitted (a8d115e)

This PR was generated with Release Please. See documentation.

@codecov

codecov Bot commented Oct 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@osanderson
osanderson force-pushed the release-please--branches--main branch 8 times, most recently from b5b9f60 to 26930d1 Compare October 20, 2026 00:04
@osanderson
osanderson force-pushed the release-please--branches--main branch from 26930d1 to 2274166 Compare October 20, 2026 00:26
@sonarqubecloud

Copy link
Copy Markdown

@osanderson
osanderson merged commit 19fdb73 into main Oct 20, 2026
18 checks passed
@osanderson
osanderson deleted the release-please--branches--main branch October 20, 2026 00:34
@osanderson

Copy link
Copy Markdown
Collaborator Author

🤖 Created releases:

🌻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant