Skip to content

Commit 73d23df

Browse files
committed
Fixed bug: When username is not in lowercase, It threw a NPE.
1 parent 7d3302f commit 73d23df

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

core/src/main/java/org/springframework/security/provisioning/InMemoryUserDetailsManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void changePassword(String oldPassword, String newPassword) {
143143
@Override
144144
public UserDetails updatePassword(UserDetails user, String newPassword) {
145145
String username = user.getUsername();
146-
MutableUserDetails mutableUser = this.users.get(username);
146+
MutableUserDetails mutableUser = this.users.get(username.toLowerCase());
147147
mutableUser.setPassword(newPassword);
148148
return mutableUser;
149149
}

core/src/test/java/org/springframework/security/provisioning/InMemoryUserDetailsManagerTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.junit.Test;
2020
import org.springframework.security.core.userdetails.PasswordEncodedUser;
21+
import org.springframework.security.core.userdetails.User;
2122
import org.springframework.security.core.userdetails.UserDetails;
2223

2324
import static org.assertj.core.api.Assertions.*;
@@ -37,4 +38,15 @@ public void changePassword() {
3738
this.manager.updatePassword(this.user, newPassword);
3839
assertThat(this.manager.loadUserByUsername(this.user.getUsername()).getPassword()).isEqualTo(newPassword);
3940
}
41+
42+
@Test
43+
public void changePasswordWhenUsernameIsNotInLowercase() {
44+
UserDetails userNotLowerCase = User.withUserDetails(PasswordEncodedUser.user())
45+
.username("User")
46+
.build();
47+
48+
String newPassword = "newPassword";
49+
this.manager.updatePassword(userNotLowerCase, newPassword);
50+
assertThat(this.manager.loadUserByUsername(userNotLowerCase.getUsername()).getPassword()).isEqualTo(newPassword);
51+
}
4052
}

0 commit comments

Comments
 (0)