package de.fhb.autobday.beans.actions;
import de.fhb.autobday.beans.SessionBean;
import de.fhb.autobday.data.AbdUser;
import de.fhb.autobday.exception.commons.HashFailException;
import de.fhb.autobday.exception.user.UserException;
import de.fhb.autobday.manager.user.UserManagerLocal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpSession;
/**
* ActionBean for login-logout-form.
*
* @author Michael Koppen mail: koppen@fh-brandenburg.de
*/
@Named
@RequestScoped
public class LoginLogoutBean {
private final static Logger LOGGER = Logger.getLogger(LoginLogoutBean.class.getName());
@Inject
private UserManagerLocal userManager;
@Inject
private SessionBean sessionBean;
private String userName;
private String password;
/**
* Creates a new instance of LoginBean
*/
public LoginLogoutBean() {
userName = "username";
password = "password";
}
/**
* will login a user.
* @return redirect to index.
*/
public String login() {
AbdUser aktUser = null;
try {
aktUser = userManager.login(userName, password);
password = "password";
sessionBean.setAktUser(aktUser);
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO, "You are logged in!", ""));
} catch (UserException ex) {
LOGGER.log(Level.SEVERE, null, ex.getMessage());
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Wrong Username or Password!", ""));
} catch (HashFailException ex) {
LOGGER.log(Level.SEVERE, null, ex.getMessage());
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), ""));
}
return "index";
}
/**
* will logout a user and invalidating the session.
* @return redirect to index.
*/
public String logout() {
sessionBean.setAktUser(null);
FacesContext fc = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
session.invalidate();
FacesContext.getCurrentInstance().addMessage(
null, new FacesMessage(FacesMessage.SEVERITY_INFO, "You are logged out!", ""));
return "index";
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}