Bão, meu problema é que não estou conseguindo forçar o Login na minha aplicação, se tento subir diretamente pelo “home” ela funciona normalmente.
Filter
[code]@WebFilter(servletNames={“Login Filter”})
public class LoginFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)throws ServletException,IOException{
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
if (session.getAttribute("autenticado") != null ||
req.getRequestURI().endsWith("/pages/login/login.xhtml")){
chain.doFilter(request, response);
}
else{
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/pages/login/erro.xhtml");
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}[/code]
Login
[code]public String logar(){
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
this.entityManager = (EntityManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "entityManager");
LoginRepository repository = new LoginRepository(this.entityManager);
try {
Usuario login = repository.autentica(usuario);
if (login.getUsuario().equals("") || login.getUsuario() == null){
FacesContext.getCurrentInstance().addMessage("consulta:id", new FacesMessage("Usuário ou senha Errada"));
usuario = new Usuario();
System.out.println(erro);
return "/pages/login/login";
}else{
HttpSession sessioon = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
sessioon.setAttribute("autenticado", true);
login.setLogado(true);
login.setUltimoAcesso(new Date());
System.out.println("erro =0");
erro =0;
//repository.AtualizaAcesso(login);
return "/pages/home";
}
} catch (NoResultException e) {
e.printStackTrace();
erro++;
System.out.println("catch");
return "/pages/login/login";
}
}[/code]
Web.xml
[code]
LoginFilter
br.com.boletos.filter.LoginFilter