Olá a todos, tenho uma tela de login que está funcionando corretamente mas quando se erra o usurário ou senha não consigo mostrar um aviso de erro este é o código:
Login
<h:body
style=“background-image:url(#{request.contextPath}/resources/imagens/wallpaper.jpg);”>
<p:growl autoUpdate=“true”/>
<h:graphicImage library=“imagens” name="login.jpg"
style="position: center; top:50%; left:50%; width:100%; " />
Integra Olgber
<form action="#{request.contextPath}/login" method="post"
name="register" onsubmit="return validacao();">
<div class="inputBox">
<h:inputText required="true" id="username" />
<label for="username">Usuário</label>
</div>
<div class="inputBox">
<h:inputSecret required="true" id="password" />
<label for="password">Senha</label>
</div>
<input type="submit" value="Entrar" id="entrar"/>
</form>
</div>
</h:body>
E este o do spring onde ele deveria mostrar a mensagem:
public class CustomAuthenticationProvider implements AuthenticationProvider {
@Autowired
private UsuarioServices usuarioServices;
private String msm;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
UsernamePasswordAuthenticationToken userToken = (UsernamePasswordAuthenticationToken) authentication;
String loginFornecido = userToken.getName();
System.out.println(loginFornecido);
String senhaFornecida = (String) userToken.getCredentials();
Usuario usuario = usuarioServices.obterPorLogin(loginFornecido);
verificarLoginESenha(senhaFornecida, usuario);
return new UsernamePasswordAuthenticationToken(usuario, senhaFornecida, usuario.getAuthorities());
}
private void verificarLoginESenha(String senhaFornecida, Usuario usuario) {
if (usuario == null) {
msm = "Usuario não Existe!";
throw new BadCredentialsException(msm); <-- Está linha deveria enviar a mensagem
}
if (!senhaFornecida.equals(usuario.getSenha())) {
throw new BadCredentialsException("Senha inválida"); <-- Está linha deveria enviar a mensagem
}
}
Oque está errado para o throw new BadCredentialsException não mostrar a mensagem .