Skip to content

Commit e2732af

Browse files
committed
Don't warn if UserDetailsAuthenticationProvider is configured per UserDetailsService
We should assume that every `UserDetailsService` is wired with configured `UserDetailsAuthenticationProvider`. Continuation of commit 7ddc005
1 parent c3e010f commit e2732af

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.core.Ordered;
2727
import org.springframework.core.annotation.Order;
2828
import org.springframework.core.log.LogMessage;
29+
import org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider;
2930
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
3031
import org.springframework.security.authentication.password.CompromisedPasswordChecker;
3132
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
@@ -69,11 +70,18 @@ public void configure(AuthenticationManagerBuilder auth) throws Exception {
6970
List<BeanWithName<UserDetailsService>> userDetailsServices = getBeansWithName(UserDetailsService.class);
7071
if (auth.isConfigured()) {
7172
if (!userDetailsServices.isEmpty()) {
72-
this.logger.warn("Global AuthenticationManager configured with an AuthenticationProvider bean. "
73-
+ "UserDetailsService beans will not be used for username/password login. "
74-
+ "Consider removing the AuthenticationProvider bean. "
75-
+ "Alternatively, consider using the UserDetailsService in a manually instantiated "
76-
+ "DaoAuthenticationProvider.");
73+
List<BeanWithName<AbstractUserDetailsAuthenticationProvider>> userDetailsAuthenticationProviders = getBeansWithName(
74+
AbstractUserDetailsAuthenticationProvider.class);
75+
boolean wired = (userDetailsAuthenticationProviders.size() == userDetailsServices.size());
76+
// we should check every UserDetailsService is actually wired
77+
// but getUserDetailsService() is not exposed
78+
if (!wired) {
79+
this.logger.warn("Global AuthenticationManager configured with an AuthenticationProvider bean. "
80+
+ "UserDetailsService beans will not be used for username/password login. "
81+
+ "Consider removing the AuthenticationProvider bean. "
82+
+ "Alternatively, consider using the UserDetailsService in a manually instantiated "
83+
+ "DaoAuthenticationProvider.");
84+
}
7785
}
7886
return;
7987
}

0 commit comments

Comments
 (0)