From 5fefdd5bb3ddb79ab459facad44e57562ee5945c Mon Sep 17 00:00:00 2001 From: DingHao Date: Tue, 8 Jul 2025 15:35:39 +0800 Subject: [PATCH] Remove AbstractConfiguredSecurityBuilder apply Closes gh-13441 Signed-off-by: DingHao --- .../AbstractConfiguredSecurityBuilder.java | 19 ------------- ...bstractConfiguredSecurityBuilderTests.java | 28 +++++++++---------- .../HttpSecurityConfigurationTests.java | 4 +-- .../CustomHttpSecurityConfigurerTests.java | 9 +++--- 4 files changed, 20 insertions(+), 40 deletions(-) diff --git a/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java b/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java index 7643e491b6..9bf488314c 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java +++ b/config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java @@ -113,24 +113,6 @@ public abstract class AbstractConfiguredSecurityBuilder> C apply(C configurer) throws Exception { - configurer.addObjectPostProcessor(this.objectPostProcessor); - configurer.setBuilder((B) this); - add(configurer); - return configurer; - } - /** * Applies a {@link SecurityConfigurer} to this {@link SecurityBuilder} overriding any * {@link SecurityConfigurer} of the exact same class. Note that object hierarchies @@ -162,7 +144,6 @@ public abstract class AbstractConfiguredSecurityBuilder> B with(C configurer) throws Exception { return with(configurer, Customizer.withDefaults()); } diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java index 322459e33a..1624b874ac 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/AbstractConfiguredSecurityBuilderTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,8 +60,8 @@ public class AbstractConfiguredSecurityBuilderTests { @Test public void applyWhenDuplicateConfigurerAddedThenDuplicateConfigurerRemoved() throws Exception { - this.builder.apply(new TestSecurityConfigurer()); - this.builder.apply(new TestSecurityConfigurer()); + this.builder.with(new TestSecurityConfigurer()); + this.builder.with(new TestSecurityConfigurer()); assertThat(this.builder.getConfigurers(TestSecurityConfigurer.class)).hasSize(1); } @@ -79,7 +79,7 @@ public class AbstractConfiguredSecurityBuilderTests { @Test public void buildWhenConfigurerAppliesAnotherConfigurerThenObjectStillBuilds() throws Exception { DelegateSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class); - this.builder.apply(new DelegateSecurityConfigurer()); + this.builder.with(new DelegateSecurityConfigurer()); this.builder.build(); verify(DelegateSecurityConfigurer.CONFIGURER).init(this.builder); verify(DelegateSecurityConfigurer.CONFIGURER).configure(this.builder); @@ -88,7 +88,7 @@ public class AbstractConfiguredSecurityBuilderTests { @Test public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurerThenNotConfigured() throws Exception { ApplyAndRemoveSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class); - this.builder.apply(new ApplyAndRemoveSecurityConfigurer()); + this.builder.with(new ApplyAndRemoveSecurityConfigurer()); this.builder.build(); verify(ApplyAndRemoveSecurityConfigurer.CONFIGURER, never()).init(this.builder); verify(ApplyAndRemoveSecurityConfigurer.CONFIGURER, never()).configure(this.builder); @@ -97,7 +97,7 @@ public class AbstractConfiguredSecurityBuilderTests { @Test public void buildWhenConfigurerAppliesAndRemoveAnotherConfigurersThenNotConfigured() throws Exception { ApplyAndRemoveAllSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class); - this.builder.apply(new ApplyAndRemoveAllSecurityConfigurer()); + this.builder.with(new ApplyAndRemoveAllSecurityConfigurer()); this.builder.build(); verify(ApplyAndRemoveAllSecurityConfigurer.CONFIGURER, never()).init(this.builder); verify(ApplyAndRemoveAllSecurityConfigurer.CONFIGURER, never()).configure(this.builder); @@ -107,8 +107,8 @@ public class AbstractConfiguredSecurityBuilderTests { public void getConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception { TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); - builder.apply(new DelegateSecurityConfigurer()); - builder.apply(new DelegateSecurityConfigurer()); + builder.with(new DelegateSecurityConfigurer()); + builder.with(new DelegateSecurityConfigurer()); assertThatIllegalStateException().isThrownBy(() -> builder.getConfigurer(DelegateSecurityConfigurer.class)); } @@ -116,8 +116,8 @@ public class AbstractConfiguredSecurityBuilderTests { public void removeConfigurerWhenMultipleConfigurersThenThrowIllegalStateException() throws Exception { TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); - builder.apply(new DelegateSecurityConfigurer()); - builder.apply(new DelegateSecurityConfigurer()); + builder.with(new DelegateSecurityConfigurer()); + builder.with(new DelegateSecurityConfigurer()); assertThatIllegalStateException().isThrownBy(() -> builder.removeConfigurer(DelegateSecurityConfigurer.class)); } @@ -127,8 +127,8 @@ public class AbstractConfiguredSecurityBuilderTests { DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer(); TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); - builder.apply(configurer1); - builder.apply(configurer2); + builder.with(configurer1); + builder.with(configurer2); List removedConfigurers = builder .removeConfigurers(DelegateSecurityConfigurer.class); assertThat(removedConfigurers).hasSize(2); @@ -142,8 +142,8 @@ public class AbstractConfiguredSecurityBuilderTests { DelegateSecurityConfigurer configurer2 = new DelegateSecurityConfigurer(); TestConfiguredSecurityBuilder builder = new TestConfiguredSecurityBuilder(mock(ObjectPostProcessor.class), true); - builder.apply(configurer1); - builder.apply(configurer2); + builder.with(configurer1); + builder.with(configurer2); List configurers = builder.getConfigurers(DelegateSecurityConfigurer.class); assertThat(configurers).hasSize(2); assertThat(configurers).containsExactly(configurer1, configurer2); diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfigurationTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfigurationTests.java index db2951aa8e..955ad614ae 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfigurationTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/configuration/HttpSecurityConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -630,7 +630,7 @@ public class HttpSecurityConfigurationTests { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { - http.apply(CustomDsl.customDsl()); + http.with(CustomDsl.customDsl()); return http.build(); } diff --git a/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java b/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java index 01d2f83c61..bfb4162c71 100644 --- a/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java +++ b/config/src/test/java/org/springframework/security/config/http/customconfigurer/CustomHttpSecurityConfigurerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -118,10 +118,9 @@ public class CustomHttpSecurityConfigurerTests { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { // @formatter:off - http - .apply(CustomConfigurer.customConfigurer()) - .loginPage("/custom"); - return http.build(); + return http + .with(CustomConfigurer.customConfigurer(), (c) -> c.loginPage("/custom")) + .build(); // @formatter:on }