1 25 package enterprise.jsf_jpa_war; 26 27 import java.util.Date ; 28 import java.util.logging.Level ; 29 import java.util.logging.Logger ; 30 import javax.annotation.Resource; 31 import javax.faces.application.FacesMessage; 32 import javax.faces.context.ExternalContext; 33 import javax.faces.context.FacesContext; 34 import javax.persistence.EntityManager; 35 import javax.persistence.NoResultException; 36 import javax.persistence.PersistenceContext; 37 import javax.servlet.http.HttpSession ; 38 import javax.transaction.UserTransaction ; 39 40 45 public class UserManager { 46 47 51 public static final String USER_SESSION_KEY = "user"; 52 53 56 @PersistenceContext 57 private EntityManager em; 58 59 62 @Resource 63 private UserTransaction utx; 64 65 68 private String username; 69 private String password; 70 private String passwordv; 71 private String fname; 72 private String lname; 73 74 76 public String getUsername() { 77 return username; 78 } 79 80 public void setUsername(String username) { 81 this.username = username; 82 } 83 84 public String getPassword() { 85 return password; 86 } 87 88 public void setPassword(String password) { 89 this.password = password; 90 } 91 92 public String getPasswordv() { 93 return passwordv; 94 } 95 96 public void setPasswordv(String passwordv) { 97 this.passwordv = passwordv; 98 } 99 100 public String getFname() { 101 return fname; 102 } 103 104 public void setFname(String fname) { 105 this.fname = fname; 106 } 107 108 public String getLname() { 109 return lname; 110 } 111 112 public void setLname(String lname) { 113 this.lname = lname; 114 } 115 116 117 119 120 130 public String validateUser() { 131 FacesContext context = FacesContext.getCurrentInstance(); 132 Wuser user = getUser(); 133 if (user != null) { 134 if (!user.getPassword().equals(password)) { 135 FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, 136 "Login Failed!", 137 "The password specified is not correct."); 138 context.addMessage(null, message); 139 return null; 140 } 141 142 context.getExternalContext().getSessionMap().put(USER_SESSION_KEY, user); 143 return "app-main"; 144 } else { 145 FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, 146 "Login Failed!", 147 "Username '" 148 + username 149 + 150 "' does not exist."); 151 context.addMessage(null, message); 152 return null; 153 } 154 } 155 156 165 public String createUser() { 166 FacesContext context = FacesContext.getCurrentInstance(); 167 Wuser wuser = getUser(); 168 if (wuser == null) { 169 if (!password.equals(passwordv)) { 170 FacesMessage message = new FacesMessage("The specified passwords do not match. Please try again"); 171 context.addMessage(null, message); 172 return null; 173 } 174 wuser = new Wuser(); 175 wuser.setFirstname(fname); 176 wuser.setLastname(lname); 177 wuser.setPassword(password); 178 wuser.setUsername(username); 179 wuser.setSince(new Date ()); 180 try { 181 utx.begin(); 182 em.persist(wuser); 183 utx.commit(); 184 return "login"; 185 } catch (Exception e) { 186 FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, 187 "Error creating user!", 188 "Unexpected error when creating your account. Please contact the system Administrator"); 189 context.addMessage(null, message); 190 Logger.getAnonymousLogger().log(Level.SEVERE, 191 "Unable to create new user", 192 e); 193 return null; 194 } 195 } else { 196 FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, 197 "Username '" 198 + username 199 + "' already exists! ", 200 "Please choose a different username."); 201 context.addMessage(null, message); 202 return null; 203 } 204 } 205 206 207 213 public String logout() { 214 HttpSession session = (HttpSession ) 215 FacesContext.getCurrentInstance().getExternalContext().getSession(false); 216 if (session != null) { 217 session.invalidate(); 218 } 219 return "login"; 220 221 } 222 223 225 226 234 private Wuser getUser() { 235 try { 236 Wuser user = (Wuser) 237 em.createNamedQuery("Wuser.findByUsername"). 238 setParameter("username", username).getSingleResult(); 239 return user; 240 } catch (NoResultException nre) { 241 return null; 242 } 243 } 244 245 } 246 | Popular Tags |