From 7c95c8860197540d17be7499b9eb2ecc1393bb02 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 23 Oct 2017 12:50:45 -0500 Subject: [PATCH] Add User/UserBuilder in UserDetailsManagerConfigurer Fixes gh-4679 --- .../UserDetailsManagerConfigurer.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/provisioning/UserDetailsManagerConfigurer.java b/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/provisioning/UserDetailsManagerConfigurer.java index d353534da5..835b3eda78 100644 --- a/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/provisioning/UserDetailsManagerConfigurer.java +++ b/config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/provisioning/UserDetailsManagerConfigurer.java @@ -43,6 +43,8 @@ public class UserDetailsManagerConfigurer, C private final List userBuilders = new ArrayList(); + private final List users = new ArrayList<>(); + protected UserDetailsManagerConfigurer(UserDetailsManager userDetailsManager) { super(userDetailsManager); } @@ -57,6 +59,35 @@ public class UserDetailsManagerConfigurer, C for (UserDetailsBuilder userBuilder : userBuilders) { getUserDetailsService().createUser(userBuilder.build()); } + for (UserDetails userDetails : this.users) { + getUserDetailsService().createUser(userDetails); + } + } + + /** + * Allows adding a user to the {@link UserDetailsManager} that is being created. This + * method can be invoked multiple times to add multiple users. + * + * @param userDetails the user to add. Cannot be null. + * @return + */ + @SuppressWarnings("unchecked") + public final C withUser(UserDetails userDetails) { + this.users.add(userDetails); + return (C) this; + } + + /** + * Allows adding a user to the {@link UserDetailsManager} that is being created. This + * method can be invoked multiple times to add multiple users. + * + * @param userBuilder the user to add. Cannot be null. + * @return + */ + @SuppressWarnings("unchecked") + public final C withUser(User.UserBuilder userBuilder) { + this.users.add(userBuilder.build()); + return (C) this; } /**