Tip
|
The 2.x versions are Spring Boot 3 compatible. |
Includes changes in 1.8.15-GA.
Added support for managing Admin User roles and access from third-party OAuth2 providers like Okta, Google, or MS Entra. See Admin User Management via Third-Party Authentication Provider.
1.1.4
Spring Authorization Server 1.1.4
now scrutinizes parameters that are part of the query string versus parameters that come from form data.
Important
|
By default, this is technically a breaking API change. However, backwards compatibility is still an option.
|
Updated PublicRefreshPublicClientAuthenticationConverter
to match updates to PublicClientAuthenticationConverter
Updated OAuth2EndpointUtils
to match updates to Spring’s version of the class
Updated DefaultOAuth2ParamFilter
and DefaultOAuth2ParamHandler
method contract to support producing a mutated request.getQueryString()
result
UserContext
Important
|
This is technically a breaking change, as some classes, methods, and fields are removed/replaced.
However, most clients will not be affected.
Remediation should be a short process to transition away from UserContext and onto JwtTokenEnhancerContext#getAdditionalContext() .
|
Deleted the UserContext
concept altogether in favor of new early-ordered CurrentUserCacheAccessTokenEnhancer
that sets the current user in JwtTokenEnhancerContext#getAdditionalContext()
Updated AbstractUserAccessTokenEnhancer
to get the user from JwtTokenEnhancerContext#getAdditionalContext()
instead of relying on UserContext
Deleted all UserContext
related fields and methods
Changed the parameter of getUser
to JwtTokenEnhancerContext
instead of Authentication
Reduced visibility of getUser
to protected
instead of public
Refactored DefaultUserOperationService
to perform its own query for User
instead of having a reference to AccountIdAccessTokenEnhancer
Deleted all references to AccountIdAccessTokenEnhancer
Added a direct dependency on UserService
Same as in 1.8.15-GA.
OAuth2AuthorizedClient
implementation reworkSame as in 1.8.15-GA.
Note
|
There is a slight distinction specifically in 2.0.1 if coming from 2.0.0 .
The behavior in AuthenticationLogoutHandler is slightly different from before, where the BLC-ACS-* cookie was always deleted regardless of whether there was an existing session cookie.
With the new behavior, only the current signed-in user can engage removal of this authorized client with the unique identifiers present in their session claims.
|
ForwardedHeaderFilter
ConfigurationHistorically, AuthenticationServices never came with OOB configuration for ForwardedHeaderFilter
or configuration to disable security on /actuator
endpoints (anonymous access).
Clients with projects based on the Broadleaf Starter (from the Broadleaf Initializr) would have a local configuration file in their AuthenticationServices project called ForwardedHeaderSecurityConfiguration
(auto-generated by the flex:generate
plugin).
This would define the required configuration for them.
Clients with projects not based on the Broadleaf Starter would have a file in their AuthenticationServices project called SampleAuthorizationServerWebSecurityConfiguration
.
This would define the required configuration for them.
There are new changes in AuthenticationServices and the Broadleaf Starter that eliminate this requirement altogether.
Important
|
Clients with starter-based projects should remove the Clients with non-starter based projects should remove the |
Introduced a new ForwardedHeaderFilterAutoConfiguration
ordered with low precedence to serve as a fallback OOB ForwardedHeaderFilter
configuration if StarterConfiguration
is unavailable (for example, in non-starter-based projects).
This is enabled by default, and can be toggled via the broadleaf.auth.forward.header.enabled
property
Important
|
Clients who disabled the relevant configuration in the Broadleaf starter via broadleafdemo.forward.header.enabled should also disable this property to keep the same behavior.
|
Introduced a new ActuatorAnonymousAutoConfiguration
ordered with low precedence to serve as a fallback OOB actuator anonymous configuration if StarterConfiguration
is unavailable (for example, in non-starter-based projects).
This is not enabled by default, and can be toggled via the broadleaf.auth.actuator.anonymous
property
Important
|
Clients who disabled the relevant configuration in the Broadleaf starter via broadleafdemo.actuator.anonymous should also disable this property to keep the same behavior.
|
Added properties to configure post auth redirect URI defaults when handling Application creation events.
These are analogous to the previously present server creation default properties for setting OAuth redirect URIs when a new Authorized Client is created for a new Application.
Allow requested redirect URI to include extra query parameters for impersonation and any other post-authentication success redirect URIs.
The previous validation of post auth redirect URIs is overly strict for expected usage outside of OAuth2 flows.
Allow user entities for CSRs impersonating themselves to be resolved by CurrentUserCacheAccessTokenEnhancer
correctly or skipped in the case of CSRs impersonating guests (anonymous users).
Re-introduce legacy 'user_name' claim in access tokens for backwards compatibility with 1.X
Remove TokenEndpointFilterPostProcessor.LEGACY_USER_NAME_CLAIM
constant and replace it with the new same-valued UserDataClaims.USER_NAME_1X
constant
Update AccountIdAccessTokenEnhancer
to gracefully handle case where there is no OAuth2Authorization
- for example, when the grant type is not 'authorization_code' or 'refresh_token'
Fix possible DB connection pool deadlock with OAuth2 Authorization cleanup batch job.
Introduce properties inside AuthenticationStrategyDelegateProperties
that will be utilized for determining if an ExternalAdminUserHandler
needs to be injected for a particular implementation of AbstractOAuthClientAuthenticationStrategyDelegate
such as DefaultOIDCAuthenticationStrategyDelegate
. More on the properties is explained in Admin User Management via Third-Party Authentication Provider.
Same as in 1.8.15-GA.
Same as in 1.8.15-GA.
These are included in Search Services 2.1.0.