Skip to content

Commit 7c95c88

Browse files
committed
Add User/UserBuilder in UserDetailsManagerConfigurer
Fixes gh-4679
1 parent 1ea10a1 commit 7c95c88

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

config/src/main/java/org/springframework/security/config/annotation/authentication/configurers/provisioning/UserDetailsManagerConfigurer.java

+31
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public class UserDetailsManagerConfigurer<B extends ProviderManagerBuilder<B>, C
4343

4444
private final List<UserDetailsBuilder> userBuilders = new ArrayList<UserDetailsBuilder>();
4545

46+
private final List<UserDetails> users = new ArrayList<>();
47+
4648
protected UserDetailsManagerConfigurer(UserDetailsManager userDetailsManager) {
4749
super(userDetailsManager);
4850
}
@@ -57,6 +59,35 @@ protected void initUserDetailsService() throws Exception {
5759
for (UserDetailsBuilder userBuilder : userBuilders) {
5860
getUserDetailsService().createUser(userBuilder.build());
5961
}
62+
for (UserDetails userDetails : this.users) {
63+
getUserDetailsService().createUser(userDetails);
64+
}
65+
}
66+
67+
/**
68+
* Allows adding a user to the {@link UserDetailsManager} that is being created. This
69+
* method can be invoked multiple times to add multiple users.
70+
*
71+
* @param userDetails the user to add. Cannot be null.
72+
* @return
73+
*/
74+
@SuppressWarnings("unchecked")
75+
public final C withUser(UserDetails userDetails) {
76+
this.users.add(userDetails);
77+
return (C) this;
78+
}
79+
80+
/**
81+
* Allows adding a user to the {@link UserDetailsManager} that is being created. This
82+
* method can be invoked multiple times to add multiple users.
83+
*
84+
* @param userBuilder the user to add. Cannot be null.
85+
* @return
86+
*/
87+
@SuppressWarnings("unchecked")
88+
public final C withUser(User.UserBuilder userBuilder) {
89+
this.users.add(userBuilder.build());
90+
return (C) this;
6091
}
6192

6293
/**

0 commit comments

Comments
 (0)