diff --git a/src/main/java/com/example/account/AccountUserDetailsService.java b/src/main/java/com/example/account/AccountUserDetailsService.java index 1c65131..4c03e04 100644 --- a/src/main/java/com/example/account/AccountUserDetailsService.java +++ b/src/main/java/com/example/account/AccountUserDetailsService.java @@ -4,12 +4,13 @@ import org.springframework.jdbc.core.DataClassRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsPasswordService; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @Service -public class AccountUserDetailsService implements UserDetailsService { +public class AccountUserDetailsService implements UserDetailsService, UserDetailsPasswordService { private final JdbcTemplate jdbcTemplate; @@ -30,4 +31,10 @@ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundEx } } + @Override + public UserDetails updatePassword(UserDetails user, String newPassword) { + this.jdbcTemplate.update("UPDATE account SET password = ? WHERE username = ?", newPassword, user.getUsername()); + return new AccountUserDetails(new Account(user.getUsername(), newPassword)); + } + }