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

Tratamento de erro

Como tratar erro se o login Falhar?

Fiz a pagina completa de login e aparentemente tudo está funcionando corretamente, o redirecionamento, a consulta em banco, etc, porém quando tento logar recebo um error, mas não sei como tratar para mostrar a mensagem de erro, nem como identificar se o erro é de login ou senha.

Obs.: não é minha intenção mostrar se o erro é senha ou login, apenas quero identificar para verificar o funcionamento correto.

6 respostas

Fala aí Julio, consegue mandar a stacktrace para que eu possa entender melhor qual o erro que está ocorrendo?

Não tenho um erro para tratar, minha duvida é: caso o usuário informe uma senha ou nome de login inválido, de acordo com a matéria do curso, como eu devo tratar esse erro? E como apresentar uma mensagem para o usuário descrevendo o erro?

solução!

Oi Julio, boa pergunta, realmente não é muito intuitivo. Em geral o Spring Security passa um parâmetro chamado error indicando que teve uma falha no login. Você pode fazer assim:

<c:if test="${param.error!=null}">
        ${param.error!=null ?SPRING_SECURITY_LAST_EXCEPTION.message : ''}
    </div>
</c:if>

A variável SPRING_SECURITY_LAST_EXCEPTION guarda um objeto de erro do Spring que possibilita você pegar a mensagem.

Perfeito Alberto, era exatamente esta minha duvida.

Para finalizar o assunto, existe uma forma de redefinir essas mensagens uma vez que elas vem predefinidas em ingles? Ou devo tratar direto na minha pagina?

Oi Julio,

No seu arquivo de mensagens você pode definir a seguinte chave: AbstractUserDetailsAuthenticationProvider.badCredentials = sua mensagem aqui

Perfeito, valeu!