From 6ac3426e39b2e6bdaf77301c436ff888ac2eeeef Mon Sep 17 00:00:00 2001 From: dae won Date: Fri, 14 Feb 2025 09:58:19 +0900 Subject: [PATCH] Add userDetailsMapper as a class member Signed-off-by: dae won --- .../security/provisioning/JdbcUserDetailsManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java b/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java index b43764094c..a4f97ca0f3 100644 --- a/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java +++ b/core/src/main/java/org/springframework/security/provisioning/JdbcUserDetailsManager.java @@ -30,6 +30,7 @@ import org.springframework.context.ApplicationContextException; import org.springframework.core.log.LogMessage; import org.springframework.dao.IncorrectResultSizeDataAccessException; import org.springframework.jdbc.core.PreparedStatementSetter; +import org.springframework.jdbc.core.RowMapper; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -156,6 +157,8 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa private UserCache userCache = new NullUserCache(); + private RowMapper userDetailsMapper = this::mapToUser; + public JdbcUserDetailsManager() { } @@ -163,6 +166,11 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa setDataSource(dataSource); } + public void setUserDetailsMapper(RowMapper mapper) { + Assert.notNull(mapper, "userDetailsMapper cannot be null"); + this.userDetailsMapper = mapper; + } + @Override protected void initDao() throws ApplicationContextException { if (this.authenticationManager == null) { @@ -178,7 +186,7 @@ public class JdbcUserDetailsManager extends JdbcDaoImpl implements UserDetailsMa */ @Override protected List loadUsersByUsername(String username) { - return getJdbcTemplate().query(getUsersByUsernameQuery(), this::mapToUser, username); + return getJdbcTemplate().query(getUsersByUsernameQuery(), userDetailsMapper, username); } protected UserDetails mapToUser(ResultSet rs, int rowNum) throws SQLException {