Filtro em paginas

0 respostas
D

estou criando um projeto em jsf e hibernate, tenho uma pagina de login com um metodo,
que se loga normalmente, quando eu digito login e senha correto, ele se loga e me encaminha para a pagina de menu.jsf normalmente,

mais se eu tiver na pagina de login e for na url e digitar menu.jsf ele vai para a pagina sem fazer o login,
queria saber como faz para ter um controle de pagina para o usuario, só poder ir para a pagina de menu quando digitasse login e senha,

e se ele tentar ir direto sem login para a pagina menu.jsf digitando na url não conseguisse!

aqui o meu metodo de login:

public String logar() throws Exception{

boolean logado = false;

HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);

HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();

HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();

RegistrarInterfaceBasica logarUsuarioService = new RegistrarImpl();
logado = logarUsuarioService.autentica(this.logarUsuario.getUsuario(), this.logarUsuario.getSenha());
       
    if(logado){
        session.setAttribute("user", logado);
        rp.sendRedirect(rq.getContextPath() + "/menu.jsf");
        return "success";
    }else{
        session.setAttribute("user", null);
        session.removeAttribute("user");
        rp.sendRedirect(rq.getContextPath() + "/login.jsf");
        return "failure";
    }
}
Criado 4 de janeiro de 2011
Respostas 0
Participantes 1