Skip to content

Commit 0b612c5

Browse files
committed
Create spring-boot-security-oauth2-resource-server module
1 parent 5b3a394 commit 0b612c5

File tree

42 files changed

+117
-90
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+117
-90
lines changed

settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ include "spring-boot-project:spring-boot-reactor-netty"
102102
include "spring-boot-project:spring-boot-rsocket"
103103
include "spring-boot-project:spring-boot-security"
104104
include "spring-boot-project:spring-boot-security-oauth2-client"
105+
include "spring-boot-project:spring-boot-security-oauth2-resource-server"
105106
include "spring-boot-project:spring-boot-sendgrid"
106107
include "spring-boot-project:spring-boot-test"
107108
include "spring-boot-project:spring-boot-test-autoconfigure"

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ dependencies {
4949
optional(project(":spring-boot-project:spring-boot-r2dbc"))
5050
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
5151
optional(project(":spring-boot-project:spring-boot-security-oauth2-client"))
52+
optional(project(":spring-boot-project:spring-boot-security-oauth2-resource-server"))
5253
optional(project(":spring-boot-project:spring-boot-tomcat"))
5354
optional(project(":spring-boot-project:spring-boot-undertow"))
5455
optional(project(":spring-boot-project:spring-boot-validation"))

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/reactive/ReactiveManagementWebSecurityAutoConfiguration.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2929
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3030
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
31-
import org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration;
3231
import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration;
3332
import org.springframework.boot.security.autoconfigure.reactive.ReactiveUserDetailsServiceAutoConfiguration;
3433
import org.springframework.context.annotation.Bean;
@@ -56,9 +55,10 @@
5655
*/
5756
@AutoConfiguration(before = ReactiveSecurityAutoConfiguration.class,
5857
after = { HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class,
59-
WebEndpointAutoConfiguration.class, ReactiveOAuth2ResourceServerAutoConfiguration.class,
60-
ReactiveUserDetailsServiceAutoConfiguration.class },
61-
afterName = "org.springframework.boot.security.oauth2.client.autoconfigure.reactive.ReactiveOAuth2ClientAutoConfiguration")
58+
WebEndpointAutoConfiguration.class, ReactiveUserDetailsServiceAutoConfiguration.class },
59+
afterName = {
60+
"org.springframework.boot.security.oauth2.client.autoconfigure.reactive.ReactiveOAuth2ClientAutoConfiguration",
61+
"org.springframework.boot.security.oauth2.server.resource.autoconfigure.reactive.ReactiveOAuth2ResourceServerAutoConfiguration" })
6262
@ConditionalOnClass({ EnableWebFluxSecurity.class, WebFilterChainProxy.class })
6363
@ConditionalOnMissingBean({ SecurityWebFilterChain.class, WebFilterChainProxy.class })
6464
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfiguration.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,13 @@
1616

1717
package org.springframework.boot.actuate.autoconfigure.security.servlet;
1818

19-
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration;
2019
import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration;
2120
import org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration;
2221
import org.springframework.boot.actuate.endpoint.web.WebServerNamespace;
2322
import org.springframework.boot.actuate.health.HealthEndpoint;
2423
import org.springframework.boot.autoconfigure.AutoConfiguration;
2524
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2625
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
27-
import org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration;
2826
import org.springframework.boot.security.autoconfigure.ConditionalOnDefaultWebSecurity;
2927
import org.springframework.boot.security.autoconfigure.SecurityProperties;
3028
import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration;
@@ -50,10 +48,10 @@
5048
* @since 2.1.0
5149
*/
5250
@AutoConfiguration(before = SecurityAutoConfiguration.class,
53-
after = { HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class,
54-
WebEndpointAutoConfiguration.class, OAuth2ResourceServerAutoConfiguration.class },
51+
after = { HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class },
5552
afterName = { "org.springframework.boot.security.autoconfigure.saml2.Saml2RelyingPartyAutoConfiguration",
56-
"org.springframework.boot.security.oauth2.client.autoconfigure.servlet.OAuth2ClientAutoConfiguration" })
53+
"org.springframework.boot.security.oauth2.client.autoconfigure.servlet.OAuth2ClientAutoConfiguration",
54+
"org.springframework.boot.security.oauth2.server.resource.autoconfigure.servlet.OAuth2ResourceServerAutoConfiguration" })
5755
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
5856
@ConditionalOnDefaultWebSecurity
5957
public class ManagementWebSecurityAutoConfiguration {

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/reactive/ReactiveManagementWebSecurityAutoConfigurationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration;
3232
import org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration;
3333
import org.springframework.boot.autoconfigure.AutoConfigurations;
34-
import org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration;
3534
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
3635
import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration;
36+
import org.springframework.boot.security.oauth2.server.resource.autoconfigure.reactive.ReactiveOAuth2ResourceServerAutoConfiguration;
3737
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;
3838
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
3939
import org.springframework.context.ApplicationContext;

spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/ManagementWebSecurityAutoConfigurationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@
2929
import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration;
3030
import org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration;
3131
import org.springframework.boot.autoconfigure.AutoConfigurations;
32-
import org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration;
3332
import org.springframework.boot.security.autoconfigure.SecurityProperties;
3433
import org.springframework.boot.security.autoconfigure.saml2.Saml2RelyingPartyAutoConfiguration;
3534
import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration;
35+
import org.springframework.boot.security.oauth2.server.resource.autoconfigure.servlet.OAuth2ResourceServerAutoConfiguration;
3636
import org.springframework.boot.test.context.FilteredClassLoader;
3737
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
3838
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;

spring-boot-project/spring-boot-autoconfigure-all/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ dependencies {
5656
optional(project(":spring-boot-project:spring-boot-reactor-netty"))
5757
optional(project(":spring-boot-project:spring-boot-rsocket"))
5858
optional(project(":spring-boot-project:spring-boot-security"))
59+
optional(project(":spring-boot-project:spring-boot-security-oauth2-resource-server"))
5960
optional(project(":spring-boot-project:spring-boot-tomcat"))
6061
optional(project(":spring-boot-project:spring-boot-tx"))
6162
optional(project(":spring-boot-project:spring-boot-validation"))

spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/server/servlet/OAuth2AuthorizationServerAutoConfiguration.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2121
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
23-
import org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration;
2423
import org.springframework.boot.security.autoconfigure.servlet.UserDetailsServiceAutoConfiguration;
2524
import org.springframework.context.annotation.Import;
2625
import org.springframework.security.oauth2.server.authorization.OAuth2Authorization;
@@ -41,8 +40,7 @@
4140
* @since 3.1.0
4241
* @see OAuth2AuthorizationServerJwtAutoConfiguration
4342
*/
44-
@AutoConfiguration(before = OAuth2ResourceServerAutoConfiguration.class, beforeName = {
45-
"org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration",
43+
@AutoConfiguration(beforeName = { "org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration",
4644
"org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration" })
4745
@ConditionalOnClass(OAuth2Authorization.class)
4846
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)

spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/additional-spring-configuration-metadata.json

-8
Original file line numberDiff line numberDiff line change
@@ -454,14 +454,6 @@
454454
"level": "error"
455455
}
456456
},
457-
{
458-
"name": "spring.security.oauth2.resourceserver.jwt.jws-algorithm",
459-
"type": "java.lang.String",
460-
"deprecation": {
461-
"replacement": "spring.security.oauth2.resourceserver.jwt.jws-algorithms",
462-
"level": "error"
463-
}
464-
},
465457
{
466458
"name": "spring.session.redis.cleanup-cron",
467459
"defaultValue": "0 * * * * *"

spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration
1515
org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration
1616
org.springframework.boot.autoconfigure.netty.NettyAutoConfiguration
1717
org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration
18-
org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
19-
org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration
2018
org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerAutoConfiguration
2119
org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerJwtAutoConfiguration
2220
org.springframework.boot.autoconfigure.session.SessionAutoConfiguration

spring-boot-project/spring-boot-dependencies/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -2049,6 +2049,7 @@ bom {
20492049
"spring-boot-rsocket",
20502050
"spring-boot-security",
20512051
"spring-boot-security-oauth2-client",
2052+
"spring-boot-security-oauth2-resource-server",
20522053
"spring-boot-sendgrid",
20532054
"spring-boot-starter",
20542055
"spring-boot-starter-activemq",

spring-boot-project/spring-boot-docs/build.gradle

+2
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ dependencies {
107107
autoConfiguration(project(path: ":spring-boot-project:spring-boot-rsocket", configuration: "autoConfigurationMetadata"))
108108
autoConfiguration(project(path: ":spring-boot-project:spring-boot-security", configuration: "autoConfigurationMetadata"))
109109
autoConfiguration(project(path: ":spring-boot-project:spring-boot-security-oauth2-client", configuration: "autoConfigurationMetadata"))
110+
autoConfiguration(project(path: ":spring-boot-project:spring-boot-security-oauth2-resource-server", configuration: "autoConfigurationMetadata"))
110111
autoConfiguration(project(path: ":spring-boot-project:spring-boot-sendgrid", configuration: "autoConfigurationMetadata"))
111112
autoConfiguration(project(path: ":spring-boot-project:spring-boot-testcontainers", configuration: "autoConfigurationMetadata"))
112113
autoConfiguration(project(path: ":spring-boot-project:spring-boot-thymeleaf", configuration: "autoConfigurationMetadata"))
@@ -172,6 +173,7 @@ dependencies {
172173
configurationProperties(project(path: ":spring-boot-project:spring-boot-rsocket", configuration: "configurationPropertiesMetadata"))
173174
configurationProperties(project(path: ":spring-boot-project:spring-boot-security", configuration: "configurationPropertiesMetadata"))
174175
configurationProperties(project(path: ":spring-boot-project:spring-boot-security-oauth2-client", configuration: "configurationPropertiesMetadata"))
176+
configurationProperties(project(path: ":spring-boot-project:spring-boot-security-oauth2-resource-server", configuration: "configurationPropertiesMetadata"))
175177
configurationProperties(project(path: ":spring-boot-project:spring-boot-sendgrid", configuration: "configurationPropertiesMetadata"))
176178
configurationProperties(project(path: ":spring-boot-project:spring-boot-test-autoconfigure", configuration: "configurationPropertiesMetadata"))
177179
configurationProperties(project(path: ":spring-boot-project:spring-boot-testcontainers", configuration: "configurationPropertiesMetadata"))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
plugins {
2+
id "java-library"
3+
id "org.springframework.boot.auto-configuration"
4+
id "org.springframework.boot.configuration-properties"
5+
id "org.springframework.boot.deployed"
6+
id "org.springframework.boot.optional-dependencies"
7+
}
8+
9+
description = "Spring Boot Security OAuth2 Resource Server"
10+
11+
dependencies {
12+
api(project(":spring-boot-project:spring-boot"))
13+
api("org.springframework.security:spring-security-oauth2-jose")
14+
api("org.springframework.security:spring-security-oauth2-resource-server")
15+
16+
implementation(project(":spring-boot-project:spring-boot-security"))
17+
18+
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
19+
optional("io.projectreactor:reactor-core")
20+
optional("jakarta.servlet:jakarta.servlet-api")
21+
22+
testImplementation(project(":spring-boot-project:spring-boot-test"))
23+
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
24+
testImplementation(project(":spring-boot-project:spring-boot-webmvc"))
25+
testImplementation("com.fasterxml.jackson.core:jackson-databind")
26+
testImplementation("com.squareup.okhttp3:mockwebserver")
27+
28+
testRuntimeOnly("ch.qos.logback:logback-classic")
29+
testRuntimeOnly("org.springframework:spring-webflux")
30+
}
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
1818

1919
import java.lang.annotation.Documented;
2020
import java.lang.annotation.ElementType;
@@ -30,9 +30,8 @@
3030
* issuer-location-based JWT decoder} should be used.
3131
*
3232
* @author Andy Wilkinson
33-
* @since 3.5.0
33+
* @since 4.0.0
3434
*/
35-
@SuppressWarnings("removal")
3635
@Retention(RetentionPolicy.RUNTIME)
3736
@Target({ ElementType.TYPE, ElementType.METHOD })
3837
@Documented
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
1818

1919
import java.lang.annotation.Documented;
2020
import java.lang.annotation.ElementType;
@@ -30,9 +30,8 @@
3030
* JWT decoder} should be used.
3131
*
3232
* @author Andy Wilkinson
33-
* @since 3.5.0
33+
* @since 4.0.0
3434
*/
35-
@SuppressWarnings("removal")
3635
@Retention(RetentionPolicy.RUNTIME)
3736
@Target({ ElementType.TYPE, ElementType.METHOD })
3837
@Documented
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
1818

1919
import org.springframework.boot.autoconfigure.condition.ConditionMessage;
2020
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
@@ -29,12 +29,8 @@
2929
* Condition for creating {@link JwtDecoder} by oidc issuer location.
3030
*
3131
* @author Artsiom Yudovin
32-
* @since 2.1.0
33-
* @deprecated since 3.5.0 for removal in 3.7.0 in favor of
34-
* {@link ConditionalOnIssuerLocationJwtDecoder @ConditionalOnIssuerLocationJwtDecoder}
3532
*/
36-
@Deprecated(since = "3.5.0", forRemoval = true)
37-
public class IssuerUriCondition extends SpringBootCondition {
33+
class IssuerUriCondition extends SpringBootCondition {
3834

3935
@Override
4036
public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
1818

1919
import org.springframework.boot.autoconfigure.condition.ConditionMessage;
2020
import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
@@ -28,12 +28,8 @@
2828
* Condition for creating a jwt decoder using a public key value.
2929
*
3030
* @author Madhura Bhave
31-
* @since 2.2.0
32-
* @deprecated since 3.5.0 for removal in 3.7.0 in favor of
33-
* {@link ConditionalOnPublicKeyJwtDecoder @ConditionalOnPublicKeyJwtDecoder}
3431
*/
35-
@Deprecated(since = "3.5.0", forRemoval = true)
36-
public class KeyValueCondition extends SpringBootCondition {
32+
class KeyValueCondition extends SpringBootCondition {
3733

3834
@Override
3935
public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) {
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
1818

1919
import java.io.IOException;
2020
import java.io.InputStream;
@@ -35,7 +35,7 @@
3535
* @author Artsiom Yudovin
3636
* @author Mushtaq Ahmed
3737
* @author Yan Kardziyaka
38-
* @since 2.1.0
38+
* @since 4.0.0
3939
*/
4040
@ConfigurationProperties("spring.security.oauth2.resourceserver")
4141
public class OAuth2ResourceServerProperties {
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2019 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,4 +17,4 @@
1717
/**
1818
* Support for Spring Security's OAuth2 resource server.
1919
*/
20-
package org.springframework.boot.autoconfigure.security.oauth2.resource;
20+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure;
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2023 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource.reactive;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure.reactive;
1818

1919
import org.springframework.security.oauth2.jwt.NimbusReactiveJwtDecoder.JwkSetUriReactiveJwtDecoderBuilder;
2020
import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder;
@@ -26,7 +26,7 @@
2626
* obtained through an issuer URI.
2727
*
2828
* @author Andy Wilkinson
29-
* @since 3.1.0
29+
* @since 4.0.0
3030
*/
3131
@FunctionalInterface
3232
public interface JwkSetUriReactiveJwtDecoderBuilderCustomizer {
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource.reactive;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure.reactive;
1818

1919
import org.springframework.boot.autoconfigure.AutoConfiguration;
2020
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2121
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
23-
import org.springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerProperties;
2423
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2524
import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration;
2625
import org.springframework.boot.security.autoconfigure.reactive.ReactiveUserDetailsServiceAutoConfiguration;
26+
import org.springframework.boot.security.oauth2.server.resource.autoconfigure.OAuth2ResourceServerProperties;
2727
import org.springframework.context.annotation.Import;
2828
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
2929

@@ -32,7 +32,7 @@
3232
* support.
3333
*
3434
* @author Madhura Bhave
35-
* @since 2.1.0
35+
* @since 4.0.0
3636
*/
3737
@AutoConfiguration(
3838
before = { ReactiveSecurityAutoConfiguration.class, ReactiveUserDetailsServiceAutoConfiguration.class })
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2024 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.security.oauth2.resource.reactive;
17+
package org.springframework.boot.security.oauth2.server.resource.autoconfigure.reactive;
1818

1919
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2020
import org.springframework.context.annotation.Configuration;

0 commit comments

Comments
 (0)