Skip to content

Commit 2511615

Browse files
committed
[pinpoint-apm#12346] Fix unintended modification in InMemoryUserDetails
1 parent 6ad6e29 commit 2511615

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

basic-login/src/main/java/com/navercorp/pinpoint/login/basic/service/PinpointMemoryUserDetailsService.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.navercorp.pinpoint.login.basic.config.BasicLoginProperties;
2020
import org.apache.logging.log4j.LogManager;
2121
import org.apache.logging.log4j.Logger;
22+
import org.springframework.security.core.userdetails.User;
2223
import org.springframework.security.core.userdetails.UserDetails;
2324
import org.springframework.security.core.userdetails.UserDetailsService;
2425
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@@ -38,7 +39,7 @@ public class PinpointMemoryUserDetailsService implements UserDetailsService {
3839

3940
private final Logger logger = LogManager.getLogger(this.getClass());
4041

41-
private final Map<String, UserDetails> userDetailsMap;
42+
private final Map<String, UserDetails> users;
4243

4344
public PinpointMemoryUserDetailsService(BasicLoginProperties basicLoginConfig) {
4445
Map<String, UserDetails> userDetailsMap = new HashMap<>();
@@ -64,12 +65,17 @@ public PinpointMemoryUserDetailsService(BasicLoginProperties basicLoginConfig) {
6465
logger.debug("Has been registered {} that has ADMIN role.", adminRoleUserNameList);
6566
}
6667

67-
this.userDetailsMap = Map.copyOf(userDetailsMap);
68+
this.users = Map.copyOf(userDetailsMap);
6869
}
6970

7071
@Override
7172
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
72-
return userDetailsMap.get(username);
73+
UserDetails user = users.get(username);
74+
if (user == null) {
75+
throw new UsernameNotFoundException("User not found: " + username);
76+
}
77+
return new User(user.getUsername(), user.getPassword(), user.isEnabled(), user.isAccountNonExpired(),
78+
user.isCredentialsNonExpired(), user.isAccountNonLocked(), user.getAuthorities());
7379
}
7480

7581
}

0 commit comments

Comments
 (0)