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";
}
}