Spring Security 5.3 provides a number of new features.
Spring Security 5.4 provides a number of new features.
Below are the highlights of the release.
[[whats-new-documentation]]
@ -11,70 +11,82 @@ We will continue our effort to rewrite the documentation.
@@ -11,70 +11,82 @@ We will continue our effort to rewrite the documentation.
Here's what you'll see in this release:
* Added <<servlet-architecture,Servlet Security: The Big Picture>>
* Added <<oauth2resourceserver,OAuth 2.0 Resource Server diagrams>> for <<oauth2resourceserver-jwt-architecture,JWT>> and <<oauth2resourceserver-opaque-architecture,Opaque Token>>
* Restructured <<servlet-saml2login,SAML 2.0 Relying Party documentation>> and added diagrams
[[whats-new-logging]]
=== Logging Updates
We have begun an effort to restructure our logging.
** Added <<dbschema-oauth2-client,JDBC support for storing OAuth 2.0 tokens>>
** Added https://github.com/spring-projects/spring-security/issues/4886[JSON serialization support for OAuth 2.0 tokens]
** Polished <<testing-oauth2-client,OAuth 2.0 Client>> test support to not require an `HttpSessionOAuth2AuthorizedClientRepository` bean
** Added support for https://github.com/spring-projects/spring-security/issues/8453[client ID and secret placeholders in XML support]
** Refined `ClientRegistrations` to https://github.com/spring-projects/spring-security/issues/8514[not default scopes to the OIDC `scopes_supported` attribute]
** Allow for https://github.com/spring-projects/spring-security/issues/8903[custom Client Authentication Method] in `ClientRegistration`
** Enhanced `OAuth2AuthorizedClientArgumentResolver` to https://github.com/spring-projects/spring-security/issues/8700[pick up `OAuth2AuthorizedClientManager` from the application context]
** Added https://github.com/spring-projects/spring-security/issues/8669[`OAuth2AuthorizedClientArgumentResolver` support to XML config]
** Added `RequestCache` support to https://github.com/spring-projects/spring-security/issues/8120[`OAuth2AuthorizationCodeGrantFilter`]
** Added https://github.com/spring-projects/spring-security/issues/8326[`issuerUri` to `ClientRegistration`]
* OAuth 2.0 Resource Server
** Added support for <<oauth2resourceserver-multitenancy,multiple issuers>>
** Added <<testing-opaque-token,test support for Opaque Tokens>>
** Added support for https://github.com/spring-projects/spring-security/issues/7711[AuthNRequest signatures]
** Added support for https://github.com/spring-projects/spring-security/pull/7759[AuthNRequest POST binding]
** Made <<servlet-saml2login-sp-initiated-factory-custom-authnrequest,Open SAML `AuthnRequest` construction configurable>>
** Enhanced <<servlet-saml2login-sp-initiated-factory-custom-authnrequest,`AuthnRequest` construction to access `HttpServletRequest` data>>
** Opened <<servlet-saml2login-sp-initiated-factory-custom-authnrequest,`Saml2AuthenticationRequestContext` for extension>>
** Enhanced <<servlet-saml2login-authenticatedprincipal,`Saml2AuthenticatedPrincipal` to include `<saml2:AttributeStatement>`>>
** Enhanced <<servlet-saml2login-opensamlauthenticationprovider-userdetailsservice,`OpenSamlAuthenticationProvider` to support customizing the `Authentication` returned>>
** Enhanced <<servlet-saml2login-opensamlauthenticationprovider-additionalvalidation,`OpenSamlAuthenticationProvider` to support customizing `<saml2:Assertion>` validation>>
** Added support for <<servlet-saml2login-rpr-relyingpartyregistrationresolver,resolving the `RelyingPartyRegistration` from the request>>
** Added <<servlet-saml2login-opensaml-customization,an initialization service to supercede Open SAML's `InitializationService`>>
** Added a <<servlet-saml2login-metadata,SAML 2.0 Metadata Filter>>
** Restructured `RelyingPartyRegistration` to <<servlet-saml2login-relyingpartyregistration,separate relying and asserting party configurations>>
** Added <<servlet-saml2login-relyingpartyregistration,configuration by Asserting Party Metadata endpoint>>
** Restructured `RelyingPartyRegistration` to <<servlet-saml2login-relyingpartyregistration,reflect metadata terminology>>
* LDAP
** Added support for configuring https://github.com/spring-projects/spring-security/issues/8144[`ApacheDSContainer`] with a random port
** Added support for configuring https://github.com/spring-projects/spring-security/issues/8138[application] with a random port
* CSRF
** Made the https://github.com/spring-projects/spring-security/pull/8749[`secure` flag configurable]
[[whats-new-webflux]]
=== WebFlux
* Added https://github.com/spring-projects/spring-security/issues/7636[DSL support for custom header writers]
* OAuth 2.0 Client
** Added Test support for https://github.com/spring-projects/spring-security/issues/7910[OAuth 2.0 Client], https://github.com/spring-projects/spring-security/issues/7828[OAuth 2.0 Login], and https://github.com/spring-projects/spring-security/issues/7680[OIDC Login]
** Enhanced https://github.com/spring-projects/spring-security/issues/7842[OIDC logout success handler to support `\{baseUrl\}`]
** Added https://github.com/spring-projects/spring-security/issues/7699[OAuth2Authorization success and failure handlers]
** Added https://github.com/spring-projects/spring-security/issues/4886[JSON serialization support for OAuth 2.0 tokens]
** Added https://github.com/spring-projects/spring-security/issues/7569[ReactiveOAuth2AuthorizedClientManager integration with AuthorizedClientService]
* OAuth 2.0 Resource Server
** Added support for <<webflux-oauth2resourceserver-multitenancy,multiple issuers>>
** Added https://github.com/spring-projects/spring-security/issues/7827[test support for Opaque Tokens]
** Improved https://github.com/spring-projects/spring-security/pull/7826[bearer token error handling] for JWT and Opaque Token
[[whats-new-rsocket]]
=== RSocket
* Added support for https://github.com/spring-projects/spring-security/issues/7935[RSocket Authentication extension]
* Added https://github.com/spring-projects/spring-security/issues/5558[Kotlin DSL for WebFlux]
* Added https://github.com/spring-projects/spring-security/issues/8324[`AuthoritiesMapper` configuration] to OAuth 2.0 Login