Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Campo com nome senha do banco de dados vs propriedade do modelo

Tendo a classe de serviço para autenticação abaixo, queria saber como o Framework sabe que o campo "senha" do banco de dados é o que deve ser validado como senha? Este campo poderia ser chamado de "segredoacesso" por exemplo. Posso dar outro nome, ou isso é uma convenção obrigatória, tipo só pode usar "senha" ou "password"?

@Service
public class AutenticacaoService implements UserDetailsService{

    @Autowired
    private UsuarioRepository usuarioRepository;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

        Optional<Usuario> usuario = usuarioRepository.findByEmail(username);
        if(usuario.isPresent()) {
            return usuario.get();
        }

        throw new UsernameNotFoundException("Dados inválidos!");

    }

}
2 respostas
solução!

Ola Marcos.

No Spring Security ele valida a senha em memória internamente, e para saber o campo certinho que ele deve checar, é usado o método getPassword. Veja que a classe Usuario implementa a interface UserDetails e obriga a ter esse método. E dentro dele, você indica ao framework qual é o campo que ele deve fazer a checagem da senha.

Boaaaa.... Entendi.... Na sobre-escrita ele identifica a senha com o getPassword... showwww...... valeu man

@Override public String getPassword() { return this.senha; }