Atualmente estou com o seguinte problema no meu sistema de Login/Autorizador. Ele esta fazendo Login, porem qualquer ação executada, desloga o usuário do sistema.
Exemplo: Logar -> CTRL + F5 = desloga o usuario do sistema, ou acessar outra pagina, tambem desloga o usuario do sistema.
LoginBean:
@ManagedBean(name = "LoginMB")
@ViewScoped
public class LoginBean {
private Pessoa pessoa = new Pessoa();
private PessoaDAO pessoaDAO = new PessoaDAO();
private TimeBean timeBean;
// Metodo para efetuar login na aplicação
public String efetuaLogin() {
// Vai imprimir no console o nome do usuario logado
System.out.println("Fazendo login do usuário " + this.pessoa.getNomeUsuario());
// facesContext e utilizado para pegar o nome da pagina
FacesContext context = FacesContext.getCurrentInstance();
boolean existe = new PessoaDAO().existe(this.pessoa);
if (existe) {
// Se usuario existir, armazena o usuario em usuarioLogado e mantem na sessão
// Depois redireciona para a pagina seguinte
context.getExternalContext().getSessionMap().put("usuarioLogado", this.pessoa);
return "cadastrarTime?faces-redirect=true";
}
// Caso não exista, exibe a mensagem
// Redireciona o usuario paga a pagina seguinte
context.getExternalContext().getFlash().setKeepMessages(true);
context.addMessage(null, new FacesMessage("Usuário não encontrado"));
return "login?faces-redirect=true";
}
public String deslogar() {
// Metodo para deslogar o usuario
// Remove o usuariologado da SessionMap
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getSessionMap().remove("usuarioLogado");
// Depois de remover ele e redirecionado para a pagina seguinte
return "login.xhtml";
}
Login.xhtml:
<h:form>
<div class="form-group input-icon-left">
<i class="fa fa-user"></i>
<h:inputText type="text" placeholder="Usuário"
class="form-control" name="Usuário"
value="#{LoginMB.pessoa.nomeUsuario}" />
</div>
<div class="form-group input-icon-left">
<i class="fa fa-lock"></i>
<h:inputSecret value="#{LoginMB.pessoa.senhaUsuario}"
class="form-control" name="Senha" placeholder="Senha" />
</div>
<h:commandButton value="Login" action="#{LoginMB.efetuaLogin}"
class="btn btn-primary btn-block" />
<div class="form-actions">
<div class="checkbox checkbox-primary">
<input type="checkbox" id="checkbox" /> <label for="checkbox">Lembrar-me</label>
</div>
</div>
</h:form>