Add What's New in 5.4

Closes gh-9001
This commit is contained in:
Josh Cummings 2020-09-08 19:42:19 -06:00 committed by Joe Grandja
parent edecb47980
commit 6222c5fe34
1 changed files with 63 additions and 51 deletions

View File

@ -1,7 +1,7 @@
[[new]] [[new]]
== What's New in Spring Security 5.3 == What's New in Spring Security 5.4
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. Below are the highlights of the release.
[[whats-new-documentation]] [[whats-new-documentation]]
@ -11,70 +11,82 @@ We will continue our effort to rewrite the documentation.
Here's what you'll see in this release: 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>>
* Updated <<servlet-authentication,Servlet Authentication>> * Restructured <<servlet-saml2login,SAML 2.0 Relying Party documentation>> and added diagrams
** Rewrote
** Added how things work, including <<servlet-delegatingfilterproxy-figure,diagrams>> [[whats-new-logging]]
* Added {gh-samples-url}/boot/kotlin[Kotlin samples] === Logging Updates
* Reskinned
** Added scrolling menu We have begun an effort to restructure our logging.
** Added <<servlet-authentication-userdetailsservice,toggle>>
** Updated styles Here's what you'll see in this release:
* Restructured https://github.com/spring-projects/spring-security/commit/fa7baf551dc55eab50b9ad94720e7521f0b1d26f[authorization logs]
* Restructured https://github.com/spring-projects/spring-security/commit/fa7baf551dc55eab50b9ad94720e7521f0b1d26f[Form Login] and https://github.com/spring-projects/spring-security/commit/02d1516c566a58574af0a1d0391fd2ec8c5ad774[HTTP Basic] authentication logs
* Added https://github.com/spring-projects/spring-security/commit/bf067d679fb5990d6b3d31cee292af171f8a5014[Resource Server] https://github.com/spring-projects/spring-security/commit/b2728059ae903d027d0da0f4a25bed6df213a0ce[logs]
[[whats-new-servlet]] [[whats-new-servlet]]
=== Servlet === Servlet
* Configuration
* Added <<kotlin-config-httpsecurity,Kotlin DSL>> ** Added support for https://github.com/spring-projects/spring-security/issues/8804[publishing `SecurityFilterChain` as a `@Bean`]
* Kotlin DSL
** Added https://github.com/spring-projects/spring-security/issues/8981[`authenticationManagerResolver`]
** Added https://github.com/spring-projects/spring-security/issues/8892[`hasAnyRole` and `hasAnyAuthority`]
** Added https://github.com/spring-projects/spring-security/issues/8823[custom HeaderWriter support]
** Updated to https://github.com/spring-projects/spring-security/issues/8697[use reified types]
** Added https://github.com/spring-projects/spring-security/pull/8350[`authorize()` method that accepts `HttpMethod`]
* OAuth 2.0 Client * OAuth 2.0 Client
** Added Test support for <<testing-oauth2-client,OAuth 2.0 Client>>, <<testing-oauth2-login,OAuth 2.0 Login>>, and <<testing-oidc-login,OIDC Login>> ** Polished <<testing-oauth2-client,OAuth 2.0 Client>> test support to not require an `HttpSessionOAuth2AuthorizedClientRepository` bean
** Improved https://github.com/spring-projects/spring-security/pull/7748[customizing the OAuth 2.0 Authorization Request] ** Added support for https://github.com/spring-projects/spring-security/issues/8453[client ID and secret placeholders in XML support]
** Enhanced https://github.com/spring-projects/spring-security/issues/7842[OIDC logout success handler to support `\{baseUrl\}`] ** Refined `ClientRegistrations` to https://github.com/spring-projects/spring-security/issues/8514[not default scopes to the OIDC `scopes_supported` attribute]
** Added https://github.com/spring-projects/spring-security/issues/7840[OAuth2Authorization success and failure handlers] ** Allow for https://github.com/spring-projects/spring-security/issues/8903[custom Client Authentication Method] in `ClientRegistration`
** Added https://github.com/spring-projects/spring-security/issues/5184[XML support] ** Enhanced `OAuth2AuthorizedClientArgumentResolver` to https://github.com/spring-projects/spring-security/issues/8700[pick up `OAuth2AuthorizedClientManager` from the application context]
** Added <<dbschema-oauth2-client,JDBC support for storing OAuth 2.0 tokens>> ** Added https://github.com/spring-projects/spring-security/issues/8669[`OAuth2AuthorizedClientArgumentResolver` support to XML config]
** Added https://github.com/spring-projects/spring-security/issues/4886[JSON serialization support for OAuth 2.0 tokens] ** 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 * OAuth 2.0 Resource Server
** Added support for <<oauth2resourceserver-multitenancy,multiple issuers>> ** Added <<oauth2resourceserver-jwt-timeouts,caching support in `NimbusJwtDecoder`>>
** Added <<testing-opaque-token,test support for Opaque Tokens>> ** Made https://github.com/spring-projects/spring-security/issues/8186[principal claim configurable in `JwtAuthenticationConverter`]
** Added <<oauth2resourceserver-jwt-validation-custom,generic claim validator>> ** Enhanced configuration to <<oauth2resourceserver-jwt-authorization-extraction,pick up `JwtAuthenticationConverter` as a `@Bean`>>
** Added https://github.com/spring-projects/spring-security/issues/5185[XML support] ** Simplified https://github.com/spring-projects/spring-security/pull/8740[attribute retrieval for opaque token]
** Improved https://github.com/spring-projects/spring-security/pull/7826[bearer token error handling] for JWT and Opaque Token
* SAML 2.0 * SAML 2.0
** Added <<servlet-saml2login-opensamlauthenticationprovider-authenticationmanager,AuthenticationManager>> configuration ** Made <<servlet-saml2login-sp-initiated-factory-custom-authnrequest,Open SAML `AuthnRequest` construction configurable>>
** Added support for https://github.com/spring-projects/spring-security/issues/7711[AuthNRequest signatures] ** Enhanced <<servlet-saml2login-sp-initiated-factory-custom-authnrequest,`AuthnRequest` construction to access `HttpServletRequest` data>>
** Added support for https://github.com/spring-projects/spring-security/pull/7759[AuthNRequest POST binding] ** 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>>
** Simplified <<servlet-saml2login-rpr-credentials,`Saml2X509Credential` construction>>
** 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]] [[whats-new-webflux]]
=== WebFlux === WebFlux
* Added https://github.com/spring-projects/spring-security/issues/7636[DSL support for custom header writers] * Added https://github.com/spring-projects/spring-security/issues/5558[Kotlin DSL for WebFlux]
* OAuth 2.0 Client * Added https://github.com/spring-projects/spring-security/issues/8324[`AuthoritiesMapper` configuration] to OAuth 2.0 Login
** 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] * Added https://github.com/spring-projects/spring-security/issues/8599[`SwitchUserWebFilter`]
** 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]
[[whats-new-additional]] [[whats-new-additional]]
=== Additional Updates === Additional Updates
* Enhanced Authentication Event Publisher support * Renamed https://github.com/spring-projects/spring-security/issues/8676[whitelist and blacklist to allowlist and blocklist]
** Updated https://github.com/spring-projects/spring-security/pull/7802[configuration support] * Added https://github.com/spring-projects/spring-security/pull/7052[`RequestRejectedHandler`]
** Added https://github.com/spring-projects/spring-security/issues/7825[default event] and https://github.com/spring-projects/spring-security/issues/7824[`Map`-based] exception mapping * Strengthened https://github.com/spring-projects/spring-security/pull/8644[`StrictHttpFirewall`]
* Improved https://github.com/spring-projects/spring-security/issues/7891[integration with Spring Data] * Made https://github.com/spring-projects/spring-security/issues/5438[`SessionRegistry` aware of `SessionIdChangedEvent`]
* Added support to https://github.com/spring-projects/spring-security/issues/7661[BCrypt to hash byte arrays] * Allow https://github.com/spring-projects/spring-security/issues/8402[`AesBytesEncryptor` to be constructed with a real key]
* https://github.com/spring-projects/spring-security/pull/8450[Deprecated OpenID 2.0 support]
[[whats-new-build]] [[whats-new-build]]
=== Build Changes === Build Changes
* Changed build to https://github.com/spring-projects/spring-security/issues/7788[use version ranges] * https://github.com/spring-projects/spring-security/issues/8113[Improved performance further]
* Removed https://github.com/spring-projects/spring-security/issues/4939[dependency on Groovy]