All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This release introduces breaking changes to support Spring Boot 4.x and Spring Security 7.x.
Versioning note: The Spring Boot 4.x upgrade was incorrectly shipped in patch releases
3.0.9and3.0.10. Those releases should be avoided. Consumers on Spring Boot 3.x should stay on3.0.8; consumers upgrading to Spring Boot 4.x should use3.1.0+. See #904 and #886.
- Minimum Java version is now 17 (previously Java 11)
- Applications must be compiled and run on Java 17 or higher
- Spring Boot 4.0.1+ is now required (previously Spring Boot 3.x)
- Spring Security 7.0.2+ is now required (previously Spring Security 6.x)
Spring Boot 4.x relocated OAuth2 autoconfiguration classes. If you have imports referencing the old package paths, you must update them:
| Old Package (Spring Boot 3.x) | New Package (Spring Boot 4.x) |
|---|---|
org.springframework.boot.autoconfigure.security.oauth2.client.* |
org.springframework.boot.security.oauth2.client.* |
org.springframework.boot.autoconfigure.security.oauth2.resource.* |
org.springframework.boot.security.oauth2.resource.* |
Affected classes include:
OAuth2ClientPropertiesOAuth2ClientPropertiesMapperOAuth2ResourceServerProperties- And other related configuration classes
Spring Security 7.x deprecated the chained method style in favor of lambda DSL. The Okta Spring Boot Starter has been updated accordingly. If you have custom security configurations, update them to use the lambda DSL style:
// Old style (deprecated)
http.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated();
// New style (Spring Security 7.x)
http.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/").permitAll()
.anyRequest().authenticated());DeferredLogfrom Spring Boot has been removed. The library now uses SLF4J directly for logging during initialization.
- Support for Spring Boot 4.0.1
- Support for Spring Security 7.0.2
- Support for Spring Cloud 4.2.0
- Groovy 4.0.27 for Java 17 compatibility
- Version corrected from
3.0.10→3.1.0to properly reflect the Spring Boot 4.x minor upgrade (#904) - Updated all OAuth2 package imports to Spring Boot 4.x paths
- Migrated Spring Security configurations to lambda DSL style
- Replaced
DeferredLogwith SLF4JLoggerFactoryfor deferred logging - Updated
NamedOAuth2ServerAuthorizationRequestResolverto use modern authorization request customizer pattern - Updated exception handling for checked exceptions in
getOrderFromPathmethod OktaOAuth2Propertiesnow takesEnvironmentinstead ofOAuth2ClientPropertiesto avoidNoClassDefFoundErroron Spring Boot 3.x (#886)OktaOAuth2Configureruses reflection to loadOAuth2ClientPropertiesdynamically, supporting both Spring Boot 3.x and 4.x package paths
NoClassDefFoundError: org/springframework/boot/security/oauth2/client/autoconfigure/OAuth2ClientPropertieson Spring Boot 3.x (#886)- Semver violation: Spring Boot 4.x upgrade shipped as patch version (#904)
- Javadoc HTML5 compatibility issues (table summary attributes, duplicate tags)
- PMD violations for unused method parameters
- Commons-logging banned dependency exclusions
- Integration test dependencies for OAuth2 autoconfigure classes
spring-boot-dependencies: 4.0.1spring-cloud: 4.2.0okta-sdk: 24.0.0okta-commons: 2.0.2groovy: 4.0.27slf4j-api: 2.0.17mockito-core: 5.18.0testng: 7.11.0
- Bumped tomcat dependencies for security fixes
- Added OWASP configuration
- Resolved spring-security-core vulnerability
For changes in previous releases, see the GitHub Releases page.