@Override public void updateUser(UserDetails user) { if (userExists(user.getUsername())) { userRepository.save((User) user); log.debug("Updated user " + user.getUsername()); return; } log.warn( "User " + user.getUsername() + " does not exist, so no update operation was executed."); }
@Override public void createUser(UserDetails user) { if (userExists(user.getUsername())) { log.warn("User " + user.getUsername() + " already exists."); return; } userRepository.save((User) user); log.debug("Created user " + user.getUsername()); }
@Override public void changePassword(String oldPassword, String newPassword) { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String currentUserName = authentication.getName(); log.debug("Changing password of user: " + currentUserName); User user = userRepository.findFirstByUsername(currentUserName); if (!BCrypt.checkpw(oldPassword, user.getPassword())) { throw new UnauthorizedUserException("Old password is wrong."); } if (!(authentication instanceof AnonymousAuthenticationToken)) { // TODO is this line needed? user.setPassword(BCrypt.hashpw(newPassword, BCrypt.gensalt(12))); userRepository.save(user); log.debug("Password of user " + currentUserName + " has been changed successfully."); } }