-
Property broadleaf.auth.token.support-refresh-token-rotation was removed and whether refresh token support is enabled is now solely based on AuthorizedClient/RegisteredClient grant types(REFRESH_TOKEN)
-
Property broadleaf.auth.token.support-refresh-token-cleanup removed.
-
Introduced the new property broadleaf.auth.token.enable-oauth2-authorization-cleanup. This property would default to true. This property controls whether a clean-up job to prune obsolete OAuth2Authorizations (runs periodically) is enabled.
This property supersedes the now-removed broadleaf.auth.token.support-refresh-token-cleanup property.
-
Added an event listener that will prune the blc_password_token table as it can grow large over time.
-
Added official support for Caffeine and Ehcache as alternative caching providers for many microservices.
-
This includes new auto-configuration and properties for managing heap and off-heap budgets, as well as weights and estimated sizes for various service components.
-
For more details on configuring these providers, see the Caching Configuration documentation.
-
Updated scheduled jobs to support more user-friendly duration formats (e.g., 2d, 12h) in addition to ISO-8601.
-
Introduced lots of new diagnostic trace logs in OAuth2 flows to make it easier to identify the root cause that failed a request.
You can now enable TRACE logs in any of the following classes, and more detailed information will appear as the request moves through the flow.
|
Note
|
This is primarily intended only for use in lower environments, and in scenarios where testing a new integration may temporarily require extra diagnostic output.
It’s not recommended to enable these logs in production, as they will be very noisy.
|
|
Note
|
The API responses returned to the external caller have not changed - the messages there still remain vague to prevent leaking information to potential attackers.
|
-
com.broadleafcommerce.auth.authorization.security.embedded.code.EmbeddedLoginCodeAuthenticationConverter
-
com.broadleafcommerce.auth.authorization.security.embedded.code.EmbeddedLoginCodeAuthenticationProvider
-
com.broadleafcommerce.auth.authorization.security.spring.OIDAwareOAuth2RefreshTokenAuthenticationProvider
-
com.broadleafcommerce.auth.authorization.security.spring.PublicRefreshCodeVerifierAuthenticator
-
com.broadleafcommerce.auth.authorization.security.spring.PublicRefreshOAuth2AuthorizationCodeAuthenticationProvider
-
com.broadleafcommerce.auth.authorization.security.spring.PublicRefreshPublicClientAuthenticationProvider
-
com.broadleafcommerce.auth.authorization.security.spring.ScopeNarrowingOAuth2AuthorizationCodeRequestAuthenticationProvider
-
com.broadleafcommerce.auth.authorization.security.spring.ScopeNarrowingOAuth2ClientCredentialsAuthenticationProvider
-
Refactored AuthenticationFailureExceptionMapping/DefaultExceptionMappingAuthenticationFailureHandler to support more complex code-based error handling determinations rather than purely relying on an exception name.
Furthermore, AuthenticationFailureExceptionMapping can now define a bean order, which allows defining a priority of the mapping recognized by DefaultExceptionMappingAuthenticationFailureHandler
-
Add explicit AuthenticationFailureExceptionMapping bean for the UsernameNotFoundException to produce a more useful error message when that exception is thrown
-
The Application’s logo is now displayed on the login form if available
-
Add logic to filter out questionable permissions for customers in auth. See Customer Authority Filter
-
Introduce cache(oauth2IdentityProviders) for oauth2 identity providers instead of Map. You can control its ttl with property broadleaf.auth.cache.oauth2-identity-providers-cache, default is 5 mins.
-
Now when a DB(blc_oauth_client_registration) and a property file(spring.security.oauth2.client.registration.xxx) have the same entry for client registration, the one from a property file will be used.
-
Removed Yugabyte liquibase generation support, as it is no longer a supported DB.
-
Added support for user restrictions to be discriminated by account ID.
-
Added support to be able to display an Application’s logo on the login form.
-
Optimized the space efficiency of restrictions / restricted authorities in access tokens.
-
Added support to be able to update a user’s restrictions, restricted roles, and restricted permissions upon receiving an AccountMemberRestrictionUpdateEvent event.
-
Added support to persist a user in the Authentication Service from the Account User Creation Flow.
-
Updated Customer representation to properly deserialize the ID and ContextState when emitted from Customer Service with the actual Customer object (as opposed to PersistenceMessage payload)
-
Introduce CustomerPersistenceUtil to handle some common logic related to customer persistence
-
Added consumer events and bindings to listen for events emitted from Customer Service related to customer persistence, such as when a new customer is created and needs to be persisted in Auth
-
Note that the reason why the event is named AccountUserManuallyCreatedEvent instead of just AccountUserCreatedEvent is to be explicitly clear that this is specifically emitted & processed when an account user is manually created by another account user, rather than by the system through the account invite flow
-
Added support to emit audit events for user lifecycle changes such as user creation, deletion, and login/logout events.