Bom dia pessoal.
Sou novo no fórum e preciso da ajuda de vocês. Estou fazendo um trabalho para faculdade e preciso criar uma aplicação com JSF, PRIMEFACES.
Ja criei todas as telas e os metodos CRUD funcionam perfeitamente. Na hierarquia de pastas tenho um diretório para usuarios comum (pasta user)
e outro para administrador (PASTA admin), cada pasta com suas telas. Minha dúvida é em criar o login com sessão para cada usuário e redirecionar para a pasta específica.
Gostaria da ajuda de vocês para criar esse login.
Minha pagina de login fica assim:
<h:form id="form1">
<p:growl id="id" showDetail="true" life="4000" />
<fieldset>
<h:panelGrid columns="2" cellspacing="9">
<h:outputText value="Usuário: " />
<p:inputText id="login" value="#{userBean.user.login}"
required="true" requiredMessage="Informe o usuário"/>
<h:outputText value="Senha: " />
<p:password inline="true"
id="senha"
value="#{userBean.user.senha}"
required="true"
requiredMessage="Informe a senha"/>
<br></br>
<br></br>
<p:commandButton id="btnO"
value="Entrar"
type="submit"
actionListener="#{userBean.logar(e)}"
ajax="false"
update="id"/>
</h:panelGrid>
</fieldset>
</h:form>
public void logar(ActionEvent e) throws ParseException, SQLException, IOException{
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage msg = null;
boolean loggedIn = false;
FacesContext facesContext = FacesContext.getCurrentInstance();
// Se o usuário existir
if(dao.Logar(user)) {
// coloca o login do usuario na sessão
HttpSession sessaoHttp = (HttpSession) facesContext.getExternalContext().getSession(true);
sessaoHttp.setAttribute("user", user.getLogin());
loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Bem Vindo", user.getLogin());
FacesContext.getCurrentInstance().addMessage(null, msg);
} else {
loggedIn = false;
msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Error ao Logar", "Dados Inválidos!");
}
FacesContext.getCurrentInstance().addMessage(null, msg);
context.addCallbackParam("loggedIn", loggedIn);
}
Até aqui consegui fazer. Se o usuário existir ele exibe uma mensagem de bem vindo. Gostaria agora de redirecionar para a página específica.
Lembrando que o acesso a cada pasta depende do nivel do usuario definido em um campo da tabela de dados.
Como devo proceder daqui pra frente? Podem me ajudar? O que devo fazer?
Me desculpe por tantas perguntas, sou nob em java :)