Skip to content

Commit e4f3586

Browse files
committed
Remove Configuration meta-annotation from Enable* annotations
Before, Spring Security's @enable* annotations were meta-annotated with @configuration. While convenient, this is not consistent with the rest of the Spring projects and most notably Spring Framework's @enable annotations. Additionally, the introduction of support for @configuration(proxyBeanMethods=false) in Spring Framework provides a compelling reason to remove @configuration meta-annotation from Spring Security's @enable annotations and allow users to opt into their preferred configuration mode. Closes spring-projectsgh-6613 Signed-off-by: Joshua Sattler <[email protected]>
1 parent 9d248c7 commit e4f3586

File tree

238 files changed

+1327
-14
lines changed

Some content is hidden

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

238 files changed

+1327
-14
lines changed

config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderBuilderSecurityBuilderTests.java

+9
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import org.springframework.beans.factory.annotation.Autowired;
3030
import org.springframework.context.annotation.Bean;
31+
import org.springframework.context.annotation.Configuration;
3132
import org.springframework.context.annotation.Import;
3233
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
3334
import org.springframework.security.authentication.AuthenticationManager;
@@ -155,6 +156,7 @@ static int getPort() throws IOException {
155156
return port;
156157
}
157158

159+
@Configuration
158160
@EnableWebSecurity
159161
static class DefaultLdapConfig extends BaseLdapProviderConfig {
160162

@@ -170,6 +172,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
170172

171173
}
172174

175+
@Configuration
173176
@EnableWebSecurity
174177
static class GroupRolesConfig extends BaseLdapProviderConfig {
175178

@@ -202,6 +205,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
202205

203206
}
204207

208+
@Configuration
205209
@EnableWebSecurity
206210
static class GroupSubtreeSearchConfig extends BaseLdapProviderConfig {
207211

@@ -219,6 +223,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
219223

220224
}
221225

226+
@Configuration
222227
@EnableWebSecurity
223228
static class RolePrefixConfig extends BaseLdapProviderConfig {
224229

@@ -235,6 +240,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
235240

236241
}
237242

243+
@Configuration
238244
@EnableWebSecurity
239245
static class BindAuthenticationConfig extends BaseLdapServerConfig {
240246

@@ -252,6 +258,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
252258

253259
}
254260

261+
@Configuration
255262
@EnableWebSecurity
256263
static class PasswordEncoderConfig extends BaseLdapServerConfig {
257264

@@ -270,6 +277,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
270277

271278
}
272279

280+
@Configuration
273281
@EnableWebSecurity
274282
abstract static class BaseLdapServerConfig extends BaseLdapProviderConfig {
275283

@@ -283,6 +291,7 @@ ApacheDSContainer ldapServer() throws Exception {
283291

284292
}
285293

294+
@Configuration
286295
@EnableWebSecurity
287296
@EnableGlobalAuthentication
288297
@Import(ObjectPostProcessorConfiguration.class)

config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/LdapAuthenticationProviderConfigurerTests.java

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.junit.jupiter.api.extension.ExtendWith;
2323

2424
import org.springframework.beans.factory.annotation.Autowired;
25+
import org.springframework.context.annotation.Configuration;
2526
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
2627
import org.springframework.security.config.annotation.authentication.ldap.LdapAuthenticationProviderBuilderSecurityBuilderTests.BaseLdapProviderConfig;
2728
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -114,6 +115,7 @@ public void authenticationManagerWhenSearchSubtreeThenNestedGroupFound() throws
114115
this.mockMvc.perform(request).andExpect(expectedUser);
115116
}
116117

118+
@Configuration
117119
@EnableWebSecurity
118120
static class MultiLdapAuthenticationProvidersConfig extends WebSecurityConfigurerAdapter {
119121

@@ -135,6 +137,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
135137

136138
}
137139

140+
@Configuration
138141
@EnableWebSecurity
139142
static class MultiLdapWithCustomRolePrefixAuthenticationProvidersConfig extends WebSecurityConfigurerAdapter {
140143

@@ -158,6 +161,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
158161

159162
}
160163

164+
@Configuration
161165
@EnableWebSecurity
162166
static class LdapWithRandomPortConfig extends WebSecurityConfigurerAdapter {
163167

@@ -176,6 +180,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
176180

177181
}
178182

183+
@Configuration
179184
@EnableWebSecurity
180185
static class GroupSubtreeSearchConfig extends BaseLdapProviderConfig {
181186

config/src/integration-test/java/org/springframework/security/config/annotation/authentication/ldap/NamespaceLdapAuthenticationProviderTestsConfigs.java

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.security.config.annotation.authentication.ldap;
1818

19+
import org.springframework.context.annotation.Configuration;
1920
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
2021
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
2122
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@@ -29,6 +30,7 @@
2930
*/
3031
public class NamespaceLdapAuthenticationProviderTestsConfigs {
3132

33+
@Configuration
3234
@EnableWebSecurity
3335
static class LdapAuthenticationProviderConfig extends WebSecurityConfigurerAdapter {
3436

@@ -44,6 +46,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
4446

4547
}
4648

49+
@Configuration
4750
@EnableWebSecurity
4851
static class CustomLdapAuthenticationProviderConfig extends WebSecurityConfigurerAdapter {
4952

@@ -73,6 +76,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
7376

7477
}
7578

79+
@Configuration
7680
@EnableWebSecurity
7781
static class CustomAuthoritiesPopulatorConfig extends WebSecurityConfigurerAdapter {
7882

@@ -90,6 +94,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
9094

9195
}
9296

97+
@Configuration
9398
@EnableWebSecurity
9499
static class PasswordCompareLdapConfig extends WebSecurityConfigurerAdapter {
95100

config/src/integration-test/java/org/springframework/security/config/ldap/EmbeddedLdapServerContextSourceFactoryBeanITests.java

+6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.beans.factory.UnsatisfiedDependencyException;
2323
import org.springframework.beans.factory.annotation.Autowired;
2424
import org.springframework.context.annotation.Bean;
25+
import org.springframework.context.annotation.Configuration;
2526
import org.springframework.ldap.core.support.LdapContextSource;
2627
import org.springframework.security.authentication.AuthenticationManager;
2728
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -81,6 +82,7 @@ public void contextSourceFactoryBeanWhenManagerDnAndNoPasswordThenException() {
8182
.withMessageContaining("managerPassword is required if managerDn is supplied");
8283
}
8384

85+
@Configuration
8486
@EnableWebSecurity
8587
static class FromEmbeddedLdapServerConfig {
8688

@@ -98,6 +100,7 @@ AuthenticationManager authenticationManager(LdapContextSource contextSource) {
98100

99101
}
100102

103+
@Configuration
101104
@EnableWebSecurity
102105
static class PortZeroConfig {
103106

@@ -118,6 +121,7 @@ AuthenticationManager authenticationManager(LdapContextSource contextSource) {
118121

119122
}
120123

124+
@Configuration
121125
@EnableWebSecurity
122126
static class CustomLdifAndRootConfig {
123127

@@ -139,6 +143,7 @@ AuthenticationManager authenticationManager(LdapContextSource contextSource) {
139143

140144
}
141145

146+
@Configuration
142147
@EnableWebSecurity
143148
static class CustomManagerDnConfig {
144149

@@ -161,6 +166,7 @@ AuthenticationManager authenticationManager(LdapContextSource contextSource) {
161166

162167
}
163168

169+
@Configuration
164170
@EnableWebSecurity
165171
static class CustomManagerDnNoPasswordConfig {
166172

config/src/integration-test/java/org/springframework/security/config/ldap/LdapBindAuthenticationManagerFactoryITests.java

+8
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.beans.factory.DisposableBean;
2828
import org.springframework.beans.factory.annotation.Autowired;
2929
import org.springframework.context.annotation.Bean;
30+
import org.springframework.context.annotation.Configuration;
3031
import org.springframework.ldap.core.DirContextAdapter;
3132
import org.springframework.ldap.core.DirContextOperations;
3233
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
@@ -131,6 +132,7 @@ public void authenticationManagerFactoryWhenCustomUserSearchThenUsed() throws Ex
131132
.andExpect(authenticated().withUsername("bob"));
132133
}
133134

135+
@Configuration
134136
@EnableWebSecurity
135137
static class FromContextSourceConfig extends BaseLdapServerConfig {
136138

@@ -143,6 +145,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
143145

144146
}
145147

148+
@Configuration
146149
@EnableWebSecurity
147150
static class CustomAuthoritiesMapperConfig extends BaseLdapServerConfig {
148151

@@ -158,6 +161,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
158161

159162
}
160163

164+
@Configuration
161165
@EnableWebSecurity
162166
static class CustomAuthoritiesPopulatorConfig extends BaseLdapServerConfig {
163167

@@ -173,6 +177,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
173177

174178
}
175179

180+
@Configuration
176181
@EnableWebSecurity
177182
static class CustomUserDetailsContextMapperConfig extends BaseLdapServerConfig {
178183

@@ -188,6 +193,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
188193

189194
}
190195

196+
@Configuration
191197
@EnableWebSecurity
192198
static class CustomUserDnPatternsConfig extends BaseLdapServerConfig {
193199

@@ -200,6 +206,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
200206

201207
}
202208

209+
@Configuration
203210
@EnableWebSecurity
204211
static class CustomUserSearchConfig extends BaseLdapServerConfig {
205212

@@ -213,6 +220,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
213220

214221
}
215222

223+
@Configuration
216224
@EnableWebSecurity
217225
abstract static class BaseLdapServerConfig implements DisposableBean {
218226

config/src/integration-test/java/org/springframework/security/config/ldap/LdapPasswordComparisonAuthenticationManagerFactoryITests.java

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.beans.factory.DisposableBean;
2323
import org.springframework.beans.factory.annotation.Autowired;
2424
import org.springframework.context.annotation.Bean;
25+
import org.springframework.context.annotation.Configuration;
2526
import org.springframework.ldap.core.support.BaseLdapPathContextSource;
2627
import org.springframework.security.authentication.AuthenticationManager;
2728
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -59,6 +60,7 @@ public void authenticationManagerFactoryWhenCustomPasswordAttributeThenUsed() th
5960
this.mockMvc.perform(formLogin().user("bob").password("bob")).andExpect(authenticated().withUsername("bob"));
6061
}
6162

63+
@Configuration
6264
@EnableWebSecurity
6365
static class CustomPasswordEncoderConfig extends BaseLdapServerConfig {
6466

@@ -72,6 +74,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
7274

7375
}
7476

77+
@Configuration
7578
@EnableWebSecurity
7679
static class CustomPasswordAttributeConfig extends BaseLdapServerConfig {
7780

@@ -86,6 +89,7 @@ AuthenticationManager authenticationManager(BaseLdapPathContextSource contextSou
8689

8790
}
8891

92+
@Configuration
8993
@EnableWebSecurity
9094
abstract static class BaseLdapServerConfig implements DisposableBean {
9195

config/src/main/java/org/springframework/security/config/annotation/authentication/configuration/EnableGlobalAuthentication.java

-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.lang.annotation.RetentionPolicy;
2323
import java.lang.annotation.Target;
2424

25-
import org.springframework.context.annotation.Configuration;
2625
import org.springframework.context.annotation.Import;
2726
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
2827
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
@@ -88,7 +87,6 @@
8887
@Target(ElementType.TYPE)
8988
@Documented
9089
@Import(AuthenticationConfiguration.class)
91-
@Configuration
9290
public @interface EnableGlobalAuthentication {
9391

9492
}

config/src/main/java/org/springframework/security/config/annotation/method/configuration/EnableGlobalMethodSecurity.java

-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.lang.annotation.Target;
2424

2525
import org.springframework.context.annotation.AdviceMode;
26-
import org.springframework.context.annotation.Configuration;
2726
import org.springframework.context.annotation.Import;
2827
import org.springframework.core.Ordered;
2928
import org.springframework.security.access.annotation.Secured;
@@ -49,7 +48,6 @@
4948
@Documented
5049
@Import({ GlobalMethodSecuritySelector.class })
5150
@EnableGlobalAuthentication
52-
@Configuration
5351
public @interface EnableGlobalMethodSecurity {
5452

5553
/**

config/src/main/java/org/springframework/security/config/annotation/method/configuration/EnableMethodSecurity.java

-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.lang.annotation.Target;
2424

2525
import org.springframework.context.annotation.AdviceMode;
26-
import org.springframework.context.annotation.Configuration;
2726
import org.springframework.context.annotation.Import;
2827
import org.springframework.security.access.annotation.Secured;
2928
import org.springframework.security.access.prepost.PostAuthorize;
@@ -41,7 +40,6 @@
4140
@Target(ElementType.TYPE)
4241
@Documented
4342
@Import(MethodSecuritySelector.class)
44-
@Configuration
4543
public @interface EnableMethodSecurity {
4644

4745
/**

config/src/main/java/org/springframework/security/config/annotation/method/configuration/EnableReactiveMethodSecurity.java

-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.lang.annotation.Target;
2424

2525
import org.springframework.context.annotation.AdviceMode;
26-
import org.springframework.context.annotation.Configuration;
2726
import org.springframework.context.annotation.Import;
2827
import org.springframework.core.Ordered;
2928

@@ -36,7 +35,6 @@
3635
@Target(ElementType.TYPE)
3736
@Documented
3837
@Import(ReactiveMethodSecuritySelector.class)
39-
@Configuration
4038
public @interface EnableReactiveMethodSecurity {
4139

4240
/**

config/src/main/java/org/springframework/security/config/annotation/web/builders/HttpSecurity.java

+3
Original file line numberDiff line numberDiff line change
@@ -1853,6 +1853,7 @@ public HttpSecurity formLogin(Customizer<FormLoginConfigurer<HttpSecurity>> form
18531853
* &#064;Configuration
18541854
* public class Saml2LoginConfig {
18551855
*
1856+
* &#064;Configuration
18561857
* &#064;EnableWebSecurity
18571858
* public static class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {
18581859
* &#064;Override
@@ -1942,6 +1943,7 @@ public Saml2LoginConfigurer<HttpSecurity> saml2Login() throws Exception {
19421943
* &#064;Configuration
19431944
* public class Saml2LoginConfig {
19441945
*
1946+
* &#064;Configuration
19451947
* &#064;EnableWebSecurity
19461948
* public static class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {
19471949
* &#064;Override
@@ -2178,6 +2180,7 @@ public Saml2LogoutConfigurer<HttpSecurity> saml2Logout() throws Exception {
21782180
* &#064;Configuration
21792181
* public class OAuth2LoginConfig {
21802182
*
2183+
* &#064;Configuration
21812184
* &#064;EnableWebSecurity
21822185
* public static class OAuth2LoginSecurityConfig extends WebSecurityConfigurerAdapter {
21832186
* &#064;Override

config/src/main/java/org/springframework/security/config/annotation/web/configuration/EnableWebSecurity.java

-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.lang.annotation.RetentionPolicy;
2323
import java.lang.annotation.Target;
2424

25-
import org.springframework.context.annotation.Configuration;
2625
import org.springframework.context.annotation.Import;
2726
import org.springframework.security.config.annotation.authentication.configuration.EnableGlobalAuthentication;
2827
import org.springframework.security.config.annotation.web.WebSecurityConfigurer;
@@ -78,7 +77,6 @@
7877
@Import({ WebSecurityConfiguration.class, SpringWebMvcImportSelector.class, OAuth2ImportSelector.class,
7978
HttpSecurityConfiguration.class })
8079
@EnableGlobalAuthentication
81-
@Configuration
8280
public @interface EnableWebSecurity {
8381

8482
/**

0 commit comments

Comments
 (0)