Skip to content

Commit 1e7c86b

Browse files
committed
Add withDefaults method and use it instead of apply method
Signed-off-by: DingHao <[email protected]>
1 parent e48fdd5 commit 1e7c86b

File tree

9 files changed

+36
-28
lines changed

9 files changed

+36
-28
lines changed

config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,10 @@ public <C extends SecurityConfigurerAdapter<O, B>> B with(C configurer, Customiz
161161
return (B) this;
162162
}
163163

164+
public <C extends SecurityConfigurerAdapter<O, B>> B withDefaults(C configurer) throws Exception {
165+
return with(configurer, Customizer.withDefaults());
166+
}
167+
164168
/**
165169
* Sets an object that is shared by multiple {@link SecurityConfigurer}.
166170
* @param sharedType the Class to key the shared object by.

config/src/main/java/org/springframework/security/config/annotation/SecurityConfigurerAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public void addObjectPostProcessor(ObjectPostProcessor<?> objectPostProcessor) {
8383

8484
/**
8585
* Sets the {@link SecurityBuilder} to be used. This is automatically set when using
86-
* {@link AbstractConfiguredSecurityBuilder#apply(SecurityConfigurerAdapter)}
86+
* {@link AbstractConfiguredSecurityBuilder#withDefaults(SecurityConfigurerAdapter)}
8787
* @param builder the {@link SecurityBuilder} to set
8888
*/
8989
public void setBuilder(B builder) {

config/src/main/java/org/springframework/security/config/annotation/authentication/builders/AuthenticationManagerBuilder.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,9 @@ public <T extends UserDetailsService> DaoAuthenticationConfigurer<Authentication
195195
* @throws Exception if an error occurs when adding the LDAP authentication
196196
*/
197197
public LdapAuthenticationProviderConfigurer<AuthenticationManagerBuilder> ldapAuthentication() throws Exception {
198-
return apply(new LdapAuthenticationProviderConfigurer<>());
198+
LdapAuthenticationProviderConfigurer<AuthenticationManagerBuilder> configurer = new LdapAuthenticationProviderConfigurer<>();
199+
withDefaults(configurer);
200+
return configurer;
199201
}
200202

201203
/**
@@ -277,7 +279,8 @@ public UserDetailsService getDefaultUserDetailsService() {
277279
private <C extends UserDetailsAwareConfigurer<AuthenticationManagerBuilder, ? extends UserDetailsService>> C apply(
278280
C configurer) throws Exception {
279281
this.defaultUserDetailsService = configurer.getUserDetailsService();
280-
return super.apply(configurer);
282+
super.withDefaults(configurer);
283+
return configurer;
281284
}
282285

283286
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2232,7 +2232,8 @@ private <C extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSec
22322232
if (existingConfig != null) {
22332233
return existingConfig;
22342234
}
2235-
return apply(configurer);
2235+
withDefaults(configurer);
2236+
return configurer;
22362237
}
22372238

22382239
private ObjectPostProcessor<AuthenticationManager> getAuthenticationManagerPostProcessor() {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ HttpSecurity httpSecurity() throws Exception {
123123
.requestCache(withDefaults())
124124
.anonymous(withDefaults())
125125
.servletApi(withDefaults())
126-
.apply(new DefaultLoginPageConfigurer<>());
126+
.withDefaults(new DefaultLoginPageConfigurer<>());
127127
http.logout(withDefaults());
128128
// @formatter:on
129129
applyCorsIfAvailable(http);
@@ -153,7 +153,7 @@ private void applyDefaultConfigurers(HttpSecurity http) throws Exception {
153153
List<AbstractHttpConfigurer> defaultHttpConfigurers = SpringFactoriesLoader
154154
.loadFactories(AbstractHttpConfigurer.class, classLoader);
155155
for (AbstractHttpConfigurer configurer : defaultHttpConfigurers) {
156-
http.apply(configurer);
156+
http.withDefaults(configurer);
157157
}
158158
}
159159

config/src/main/kotlin/org/springframework/security/config/annotation/web/HttpSecurityDsl.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ class HttpSecurityDsl(private val http: HttpSecurity, private val init: HttpSecu
106106
configurer: C,
107107
configuration: C.() -> Unit = { }
108108
): C {
109-
return this.http.apply(configurer).apply(configuration)
109+
this.http.withDefaults(configurer)
110+
return configurer.apply(configuration)
110111
}
111112

112113
/**

config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-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.
@@ -60,8 +60,8 @@ public void objectPostProcessorWhenNullThenThrowIllegalArgumentException() {
6060

6161
@Test
6262
public void applyWhenDuplicateConfigurerAddedThenDuplicateConfigurerRemoved() throws Exception {
63-
this.builder.apply(new TestSecurityConfigurer());
64-
this.builder.apply(new TestSecurityConfigurer());
63+
this.builder.withDefaults(new TestSecurityConfigurer());
64+
this.builder.withDefaults(new TestSecurityConfigurer());
6565
assertThat(this.builder.getConfigurers(TestSecurityConfigurer.class)).hasSize(1);
6666
}
6767

@@ -79,7 +79,7 @@ public void getObjectWhenNotBuiltThenThrowIllegalStateException() {
7979
@Test
8080
public void buildWhenConfigurerAppliesAnotherConfigurerThenObjectStillBuilds() throws Exception {
8181
DelegateSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class);
82-
this.builder.apply(new DelegateSecurityConfigurer());
82+
this.builder.withDefaults(new DelegateSecurityConfigurer());
8383
this.builder.build();
8484
verify(DelegateSecurityConfigurer.CONFIGURER).init(this.builder);
8585
verify(DelegateSecurityConfigurer.CONFIGURER).configure(this.builder);
@@ -88,7 +88,7 @@ public void buildWhenConfigurerAppliesAnotherConfigurerThenObjectStillBuilds() t
8888
@Test
8989
public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurerThenNotConfigured() throws Exception {
9090
ApplyAndRemoveSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class);
91-
this.builder.apply(new ApplyAndRemoveSecurityConfigurer());
91+
this.builder.withDefaults(new ApplyAndRemoveSecurityConfigurer());
9292
this.builder.build();
9393
verify(ApplyAndRemoveSecurityConfigurer.CONFIGURER, never()).init(this.builder);
9494
verify(ApplyAndRemoveSecurityConfigurer.CONFIGURER, never()).configure(this.builder);
@@ -97,7 +97,7 @@ public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurerThenNotConfigure
9797
@Test
9898
public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurersThenNotConfigured() throws Exception {
9999
ApplyAndRemoveAllSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class);
100-
this.builder.apply(new ApplyAndRemoveAllSecurityConfigurer());
100+
this.builder.withDefaults(new ApplyAndRemoveAllSecurityConfigurer());
101101
this.builder.build();
102102
verify(ApplyAndRemoveAllSecurityConfigurer.CONFIGURER, never()).init(this.builder);
103103
verify(ApplyAndRemoveAllSecurityConfigurer.CONFIGURER, never()).configure(this.builder);
@@ -107,17 +107,17 @@ public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurersThenNotConfigur
107107
public void getConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception {
108108
TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class),
109109
true);
110-
builder.apply(new DelegateSecurityConfigurer());
111-
builder.apply(new DelegateSecurityConfigurer());
110+
builder.withDefaults(new DelegateSecurityConfigurer());
111+
builder.withDefaults(new DelegateSecurityConfigurer());
112112
assertThatIllegalStateException().isThrownBy(() -> builder.getConfigurer(DelegateSecurityConfigurer.class));
113113
}
114114

115115
@Test
116116
public void removeConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception {
117117
TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class),
118118
true);
119-
builder.apply(new DelegateSecurityConfigurer());
120-
builder.apply(new DelegateSecurityConfigurer());
119+
builder.withDefaults(new DelegateSecurityConfigurer());
120+
builder.withDefaults(new DelegateSecurityConfigurer());
121121
assertThatIllegalStateException().isThrownBy(() -> builder.removeConfigurer(DelegateSecurityConfigurer.class));
122122
}
123123

@@ -127,8 +127,8 @@ public void removeConfigurersWhenMultipleConfigurersThenConfigurersRemoved() thr
127127
DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer();
128128
TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class),
129129
true);
130-
builder.apply(configurer1);
131-
builder.apply(configurer2);
130+
builder.withDefaults(configurer1);
131+
builder.withDefaults(configurer2);
132132
List<DelegateSecurityConfigurer> removedConfigurers = builder
133133
.removeConfigurers(DelegateSecurityConfigurer.class);
134134
assertThat(removedConfigurers).hasSize(2);
@@ -142,8 +142,8 @@ public void getConfigurersWhenMultipleConfigurersThenConfigurersReturned() throw
142142
DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer();
143143
TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class),
144144
true);
145-
builder.apply(configurer1);
146-
builder.apply(configurer2);
145+
builder.withDefaults(configurer1);
146+
builder.withDefaults(configurer2);
147147
List<DelegateSecurityConfigurer> configurers = builder.getConfigurers(DelegateSecurityConfigurer.class);
148148
assertThat(configurers).hasSize(2);
149149
assertThat(configurers).containsExactly(configurer1, configurer2);

config/src/test/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfigurationTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-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.
@@ -688,7 +688,7 @@ static class ApplyCustomDslConfig {
688688

689689
@Bean
690690
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
691-
http.apply(CustomDsl.customDsl());
691+
http.withDefaults(CustomDsl.customDsl());
692692
return http.build();
693693
}
694694

config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2022 the original author or authors.
2+
* Copyright 2002-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.
@@ -118,10 +118,9 @@ static class Config {
118118
@Bean
119119
SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
120120
// @formatter:off
121-
http
122-
.apply(CustomConfigurer.customConfigurer())
123-
.loginPage("/custom");
124-
return http.build();
121+
return http
122+
.with(CustomConfigurer.customConfigurer(), (c) -> c.loginPage("/custom"))
123+
.build();
125124
// @formatter:on
126125
}
127126

0 commit comments

Comments
 (0)