Skip to content

Commit acebf70

Browse files
committed
SpringDocWebMvcConfiguration relies on unspecified autoconfiguration ordering. Fixes #3313
1 parent 64d5128 commit acebf70

23 files changed

Lines changed: 190 additions & 0 deletions

File tree

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocDataRestConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.springdoc.core.utils.SpringDocDataRestUtils;
4848
import tools.jackson.databind.ObjectMapper;
4949

50+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
5051
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
5152
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
5253
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -77,6 +78,7 @@
7778
*/
7879
@Lazy(false)
7980
@Configuration(proxyBeanMethods = false)
81+
@AutoConfigureAfter(SpringDocConfiguration.class)
8082
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-data-rest:true}")
8183
@ConditionalOnClass(RepositoryRestConfiguration.class)
8284
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocFunctionCatalogConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springdoc.core.providers.CloudFunctionProvider;
3333
import org.springdoc.core.providers.SpringCloudFunctionProvider;
3434

35+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3536
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3637
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3738
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -50,6 +51,7 @@
5051
*/
5152
@Lazy(false)
5253
@Configuration(proxyBeanMethods = false)
54+
@AutoConfigureAfter(SpringDocConfiguration.class)
5355
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.show-spring-cloud-functions:true}")
5456
@ConditionalOnClass(FunctionEndpointInitializer.class)
5557
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocGroovyConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springdoc.core.providers.ObjectMapperProvider;
3333
import org.springdoc.core.utils.SpringDocUtils;
3434

35+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3536
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3637
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3738
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -47,6 +48,7 @@
4748
*/
4849
@Lazy(false)
4950
@Configuration(proxyBeanMethods = false)
51+
@AutoConfigureAfter(SpringDocConfiguration.class)
5052
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-groovy:true}")
5153
@ConditionalOnClass(MetaClass.class)
5254
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocHateoasConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.springdoc.core.providers.ObjectMapperProvider;
3838
import org.springdoc.core.utils.Constants;
3939

40+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
4041
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4142
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4243
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -55,6 +56,7 @@
5556
*/
5657
@Lazy(false)
5758
@Configuration(proxyBeanMethods = false)
59+
@AutoConfigureAfter(SpringDocConfiguration.class)
5860
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-hateoas:true}")
5961
@ConditionalOnClass({LinkRelationProvider.class, HateoasProperties.class})
6062
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocJacksonKotlinModuleConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springdoc.core.properties.SpringDocConfigProperties;
3131
import org.springdoc.core.providers.ObjectMapperProvider;
3232

33+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3334
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3435
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3536
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -46,6 +47,7 @@
4647
*/
4748
@Lazy(false)
4849
@Configuration(proxyBeanMethods = false)
50+
@AutoConfigureAfter(SpringDocConfiguration.class)
4951
@ConditionalOnClass(KotlinModule.class)
5052
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-kotlin:true}")
5153
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocJavadocConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.springdoc.core.providers.ObjectMapperProvider;
3333
import org.springdoc.core.providers.SpringDocJavadocProvider;
3434

35+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3536
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3637
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3738
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -50,6 +51,7 @@
5051
*/
5152
@Lazy(false)
5253
@Configuration(proxyBeanMethods = false)
54+
@AutoConfigureAfter(SpringDocConfiguration.class)
5355
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-javadoc:true}")
5456
@ConditionalOnClass(CommentFormatter.class)
5557
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import org.springdoc.core.providers.ObjectMapperProvider
3333
import org.springdoc.core.utils.Constants
3434
import org.springdoc.core.utils.SpringDocKotlinUtils
3535
import org.springdoc.core.utils.SpringDocUtils
36+
import org.springframework.boot.autoconfigure.AutoConfigureAfter
3637
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean
3738
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass
3839
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression
@@ -50,6 +51,7 @@ import kotlin.coroutines.Continuation
5051
*/
5152
@Lazy(false)
5253
@Configuration(proxyBeanMethods = false)
54+
@AutoConfigureAfter(SpringDocConfiguration::class)
5355
@ConditionalOnProperty(name = [Constants.SPRINGDOC_ENABLED], matchIfMissing = true)
5456
@ConditionalOnExpression("\${springdoc.api-docs.enabled:true} and \${springdoc.enable-kotlin:true}")
5557
@ConditionalOnClass(Continuation::class)

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinxConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import kotlinx.coroutines.flow.Flow;
3030

31+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3132
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3233
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3334
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -44,6 +45,7 @@
4445
*/
4546
@Lazy(false)
4647
@Configuration(proxyBeanMethods = false)
48+
@AutoConfigureAfter(SpringDocConfiguration.class)
4749
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-kotlin:true}")
4850
@ConditionalOnClass(Flow.class)
4951
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.springdoc.core.providers.RepositoryRestConfigurationProvider;
3636
import org.springdoc.core.providers.SpringDataWebPropertiesProvider;
3737

38+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
3839
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3940
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4041
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -59,6 +60,7 @@
5960
*/
6061
@Lazy(false)
6162
@Configuration(proxyBeanMethods = false)
63+
@AutoConfigureAfter(SpringDocConfiguration.class)
6264
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
6365
@ConditionalOnClass(Pageable.class)
6466
@ConditionalOnWebApplication

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocSecurityConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
4747
import org.springdoc.core.customizers.OpenApiCustomizer;
4848

49+
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
4950
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
5051
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
5152
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
@@ -81,6 +82,7 @@
8182
*/
8283
@Lazy(false)
8384
@Configuration(proxyBeanMethods = false)
85+
@AutoConfigureAfter(SpringDocConfiguration.class)
8486
@ConditionalOnExpression("${springdoc.api-docs.enabled:true} and ${springdoc.enable-spring-security:true}")
8587
@ConditionalOnClass(SecurityFilterChain.class)
8688
@ConditionalOnWebApplication

0 commit comments

Comments
 (0)