Witam,
Próbuje zrobić logowanie dla użytkowników przy użyciu spring security, z tylko jednym możliwym poprawnym zalogwaniem. Mam taką klasę i chciałbym sprawdzić czy hasło pasuje do tego, które jest przechowywane w bazie danych. Tak wiem spring sam je sprawdza ale mi jest ono potrzebne do tego aby konta nie zostały zablokowane przy nieudanej próbie logowania. Na chwie obecną konto jest blokowane nawet przy nieudanej próbie logowania. Moje pytanie brzmi jak uzyskać w klasie niżej hasło, które przyszło z formularza. Z góry dzięki.
public class CustomUserDetailsService implements UserDetailsService {
private final AccountRepository accountRepository;
@Override
public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
Account user = accountRepository.findByLogin(userName);
if(null != user){
if("ROLE_STUDENT".equals(user.getPermission().getName())){
if(user.getStudentDetails().isActive()) {
user.getStudentDetails().setActive(false);
accountRepository.save(user);
return new CustomUserDetails(user);
}
}
if("ROLE_ADMIN".equals(user.getPermission().getName())) {
return new CustomUserDetails(user);
}
}
throw new UsernameNotFoundException("No user present with username: " + userName);
}
}