Browse Source

Fix getConfigurersInInitializing Semantics

A getter should not mutate state. This removes getConfigurersInInitializing
in favor of inline code since this is just used once.

Issue gh-17020 gh-17011

Signed-off-by: Rob Winch <362503+rwinch@users.noreply.github.com>
pull/17020/head
Rob Winch 5 months ago
parent
commit
fca704e61f
No known key found for this signature in database
  1. 12
      config/src/main/java/org/springframework/security/config/annotation/AbstractConfiguredSecurityBuilder.java

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

@ -60,7 +60,7 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui @@ -60,7 +60,7 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
private final LinkedHashMap<Class<? extends SecurityConfigurer<O, B>>, List<SecurityConfigurer<O, B>>> configurers = new LinkedHashMap<>();
private final List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
private List<SecurityConfigurer<O, B>> configurersAddedInInitializing = new ArrayList<>();
private final Map<Class<?>, Object> sharedObjects = new HashMap<>();
@ -388,7 +388,9 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui @@ -388,7 +388,9 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
configurer.init((B) this);
}
while (!this.configurersAddedInInitializing.isEmpty()) {
for (SecurityConfigurer<O, B> configurer : getConfigurersInInitializing()) {
List<SecurityConfigurer<O, B>> toInit = this.configurersAddedInInitializing;
this.configurersAddedInInitializing = new ArrayList<>();
for (SecurityConfigurer<O, B> configurer : toInit) {
configurer.init((B) this);
}
}
@ -410,12 +412,6 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui @@ -410,12 +412,6 @@ public abstract class AbstractConfiguredSecurityBuilder<O, B extends SecurityBui
return result;
}
private List<SecurityConfigurer<O, B>> getConfigurersInInitializing() {
List<SecurityConfigurer<O, B>> result = new ArrayList<>(this.configurersAddedInInitializing);
this.configurersAddedInInitializing.clear();
return result;
}
/**
* Determines if the object is unbuilt.
* @return true, if unbuilt else false

Loading…
Cancel
Save