Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Capturando mensagens de erro no login

Boa tarde, Estou fazendo uma página de login customizada e gostaria de saber como faço para capturar e tratar as mensagens de erro do login.

@Controller
public class LoginController {
    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String loginForm() {
    return "seguranca/login-form";
    }
}
<%@ include file="../template/cabecalho.jsp" %>
<form:form servletRelativeAction="/login" method="POST">
    <h1 class="text-center">Login</h1>
    <div class="form-group">
        <label for="username">Usuário</label>
        <input id="username" class="form-control" type="text" name="username" />
    </div>
    <div class="form-group">
        <label for="password">Senha</label>
        <input id="password" class="form-control" type="password" name="password" />
    </div>
    <button class="btn btn-primary" type="submit">
        <span class="glyphicon glyphicon-ok"></span>
        Entrar
    </button>
</form:form>
<%@ include file="../template/rodape.jsp" %>

Encontrei essa forma de fazer, mas a mensagem vem em inglês --> Bad credentials

    <c:if test="${not empty sessionScope.SPRING_SECURITY_LAST_EXCEPTION}">
        <div class="error">
            Your login attempt was not successful, try again.<br />
            Reason: ${sessionScope.SPRING_SECURITY_LAST_EXCEPTION.message}
        </div>
    </c:if>

No UsuarioDao, quando o usuário não é encontrado eu lanço a exceção abaixo, mesmo assim só chega Bad credentials: throw new UsernameNotFoundException("Usuário não encontrado.");

1 resposta
solução!

Consegui resolver.

Coloquei o trecho abaixo no messages.properties:

AbstractUserDetailsAuthenticationProvider.badCredentials=Usuário ou senha inválida.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software