Skip to content

Commit

Permalink
Migrate spring auto config away from spring.factories
Browse files Browse the repository at this point in the history
Support for auto config classes in spring.factories has been removed in v3. AutoConfiguration.imports must be used now (and can be used after 2.7)
See: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.7-Release-Notes#new-autoconfiguration-annotation
  • Loading branch information
bdemers authored and arvindkrishnakumar-okta committed Dec 24, 2022
1 parent f0d90c7 commit 8bebc22
Show file tree
Hide file tree
Showing 11 changed files with 21 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import com.okta.spring.boot.oauth.config.OktaOAuth2Properties;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand All @@ -41,7 +42,7 @@

import java.util.Collection;

@Configuration
@AutoConfiguration
@ConditionalOnOktaClientProperties
@EnableConfigurationProperties(OktaOAuth2Properties.class)
@ConditionalOnClass({ EnableWebSecurity.class, ClientRegistration.class })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import com.okta.commons.lang.Strings;
import com.okta.spring.boot.oauth.config.OktaOAuth2Properties;
import com.okta.spring.boot.oauth.http.UserAgentRequestInterceptor;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
Expand All @@ -27,7 +28,6 @@
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.client.support.BasicAuthenticationInterceptor;
import org.springframework.http.converter.FormHttpMessageConverter;
Expand All @@ -51,7 +51,7 @@
import java.util.Collections;
import java.util.Optional;

@Configuration
@AutoConfiguration
@AutoConfigureBefore(OAuth2ResourceServerAutoConfiguration.class)
@ConditionalOnClass(JwtAuthenticationToken.class)
@ConditionalOnOktaResourceServerProperties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@

import com.okta.spring.boot.oauth.config.OktaOAuth2Properties;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
Expand All @@ -40,7 +40,7 @@

import java.util.Collection;

@Configuration
@AutoConfiguration
@AutoConfigureBefore(name = {
"org.springframework.boot.autoconfigure.security.oauth2.client.reactive.ReactiveOAuth2ClientAutoConfiguration",
"org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration"})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package com.okta.spring.boot.oauth;

import com.okta.spring.boot.oauth.config.OktaOAuth2Properties;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
Expand All @@ -24,14 +25,13 @@
import org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder;
import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder;
import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
import org.springframework.web.reactive.function.client.WebClient;

@Configuration
@AutoConfiguration
@AutoConfigureBefore(ReactiveOAuth2ResourceServerAutoConfiguration.class)
@ConditionalOnOktaResourceServerProperties
@EnableConfigurationProperties({OktaOAuth2Properties.class, OAuth2ResourceServerProperties.class})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,20 @@

import com.okta.spring.boot.oauth.config.OktaOAuth2Properties;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder;
import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtAuthenticationConverterAdapter;

@Configuration
@AutoConfiguration
@ConditionalOnOktaResourceServerProperties
@AutoConfigureAfter(ReactiveOktaOAuth2ResourceServerAutoConfig.class)
@EnableConfigurationProperties({OktaOAuth2Properties.class, OAuth2ResourceServerProperties.class})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import org.springframework.lang.Nullable;
import org.springframework.security.authentication.DelegatingReactiveAuthenticationManager;
Expand All @@ -54,7 +54,7 @@

import java.net.URISyntaxException;

@Configuration
@AutoConfiguration
@ConditionalOnOktaClientProperties
@AutoConfigureAfter(ReactiveOktaOAuth2AutoConfig.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
Expand Down
7 changes: 0 additions & 7 deletions oauth2/src/main/resources/META-INF/spring.factories
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration = \
com.okta.spring.boot.oauth.OktaOAuth2AutoConfig,\
com.okta.spring.boot.oauth.OktaOAuth2ResourceServerAutoConfig,\
com.okta.spring.boot.oauth.ReactiveOktaOAuth2AutoConfig,\
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ResourceServerAutoConfig,\
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ResourceServerHttpServerAutoConfig,\
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ServerHttpServerAutoConfig
org.springframework.boot.env.EnvironmentPostProcessor = com.okta.spring.boot.oauth.env.OktaOAuth2PropertiesMappingEnvironmentPostProcessor
org.springframework.context.ApplicationListener = com.okta.spring.boot.oauth.env.OktaEnvironmentPostProcessorApplicationListener

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
com.okta.spring.boot.oauth.OktaOAuth2AutoConfig
com.okta.spring.boot.oauth.OktaOAuth2ResourceServerAutoConfig
com.okta.spring.boot.oauth.ReactiveOktaOAuth2AutoConfig
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ResourceServerAutoConfig
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ResourceServerHttpServerAutoConfig
com.okta.spring.boot.oauth.ReactiveOktaOAuth2ServerHttpServerAutoConfig
4 changes: 2 additions & 2 deletions sdk/src/main/java/com/okta/spring/boot/sdk/OktaSdkConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.okta.spring.boot.sdk.cache.SpringCacheManager;
import com.okta.spring.boot.sdk.config.OktaClientProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
Expand All @@ -36,7 +37,6 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.type.AnnotatedTypeMetadata;

import static com.okta.commons.configcheck.ConfigurationValidator.validateApiToken;
Expand All @@ -47,7 +47,7 @@
*
* @since 0.3.0
*/
@Configuration
@AutoConfiguration
@Conditional(OktaSdkConfig.OktaApiConditions.class)
@ConditionalOnClass(Client.class)
@EnableConfigurationProperties(OktaClientProperties.class)
Expand Down
2 changes: 0 additions & 2 deletions sdk/src/main/resources/META-INF/spring.factories
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.okta.spring.boot.sdk.OktaSdkConfig

org.springframework.boot.env.EnvironmentPostProcessor = com.okta.spring.boot.sdk.env.OktaSdkPropertiesEnvironmentPostProcessor
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
com.okta.spring.boot.sdk.OktaSdkConfig

0 comments on commit 8bebc22

Please sign in to comment.