|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2022 the original author or authors. |
|
|
|
* Copyright 2002-2024 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -19,6 +19,7 @@ package org.springframework.security.provisioning; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Enumeration; |
|
|
|
import java.util.Enumeration; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
|
|
|
|
import java.util.Locale; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Properties; |
|
|
|
import java.util.Properties; |
|
|
|
|
|
|
|
|
|
|
|
@ -96,23 +97,23 @@ public class InMemoryUserDetailsManager implements UserDetailsManager, UserDetai |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void createUser(UserDetails user) { |
|
|
|
public void createUser(UserDetails user) { |
|
|
|
Assert.isTrue(!userExists(user.getUsername()), "user should not exist"); |
|
|
|
Assert.isTrue(!userExists(user.getUsername()), "user should not exist"); |
|
|
|
this.users.put(user.getUsername().toLowerCase(), new MutableUser(user)); |
|
|
|
this.users.put(user.getUsername().toLowerCase(Locale.ROOT), new MutableUser(user)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void deleteUser(String username) { |
|
|
|
public void deleteUser(String username) { |
|
|
|
this.users.remove(username.toLowerCase()); |
|
|
|
this.users.remove(username.toLowerCase(Locale.ROOT)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void updateUser(UserDetails user) { |
|
|
|
public void updateUser(UserDetails user) { |
|
|
|
Assert.isTrue(userExists(user.getUsername()), "user should exist"); |
|
|
|
Assert.isTrue(userExists(user.getUsername()), "user should exist"); |
|
|
|
this.users.put(user.getUsername().toLowerCase(), new MutableUser(user)); |
|
|
|
this.users.put(user.getUsername().toLowerCase(Locale.ROOT), new MutableUser(user)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public boolean userExists(String username) { |
|
|
|
public boolean userExists(String username) { |
|
|
|
return this.users.containsKey(username.toLowerCase()); |
|
|
|
return this.users.containsKey(username.toLowerCase(Locale.ROOT)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -143,14 +144,14 @@ public class InMemoryUserDetailsManager implements UserDetailsManager, UserDetai |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public UserDetails updatePassword(UserDetails user, String newPassword) { |
|
|
|
public UserDetails updatePassword(UserDetails user, String newPassword) { |
|
|
|
String username = user.getUsername(); |
|
|
|
String username = user.getUsername(); |
|
|
|
MutableUserDetails mutableUser = this.users.get(username.toLowerCase()); |
|
|
|
MutableUserDetails mutableUser = this.users.get(username.toLowerCase(Locale.ROOT)); |
|
|
|
mutableUser.setPassword(newPassword); |
|
|
|
mutableUser.setPassword(newPassword); |
|
|
|
return mutableUser; |
|
|
|
return mutableUser; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { |
|
|
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { |
|
|
|
UserDetails user = this.users.get(username.toLowerCase()); |
|
|
|
UserDetails user = this.users.get(username.toLowerCase(Locale.ROOT)); |
|
|
|
if (user == null) { |
|
|
|
if (user == null) { |
|
|
|
throw new UsernameNotFoundException(username); |
|
|
|
throw new UsernameNotFoundException(username); |
|
|
|
} |
|
|
|
} |
|
|
|
|