Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected final Log LOGGER = LogFactory.getLog(getClass());
- @Autowired
- private UserRepository userRepository;
- @Autowired
- private PasswordEncoder passwordEncoder;
- @Autowired
- private AuthenticationManager authenticationManager;
- // Funkcija koja na osnovu username-a iz baze vraca objekat User-a
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- User user = userRepository.findByUsername(username);
- if (user == null) {
- throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username));
- } else {
- return user;
- }
- }
- // Funkcija pomocu koje korisnik menja svoju lozinku
- public void changePassword(String oldPassword, String newPassword) {
- Authentication currentUser = SecurityContextHolder.getContext().getAuthentication();
- String username = currentUser.getName();
- if (authenticationManager != null) {
- LOGGER.debug("Re-authenticating user '" + username + "' for password change request.");
- authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, oldPassword));
- } else {
- LOGGER.debug("No authentication manager set. can't change Password!");
- return;
- }
- LOGGER.debug("Changing password for user '" + username + "'");
- User user = (User) loadUserByUsername(username);
- // pre nego sto u bazu upisemo novu lozinku, potrebno ju je hesirati
- // ne zelimo da u bazi cuvamo lozinke u plain text formatu
- user.setPassword(passwordEncoder.encode(newPassword));
- userRepository.save(user);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement