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