1 5 package com.dotmarketing.cms.login.factories; 6 7 import javax.servlet.http.Cookie ; 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletResponse ; 10 import javax.servlet.http.HttpSession ; 11 12 import com.dotmarketing.cms.factories.PublicEncryptionFactory; 13 import com.dotmarketing.cms.factories.PublicUserFactory; 14 import com.dotmarketing.cms.login.struts.LoginForm; 15 import com.dotmarketing.util.Logger; 16 import com.dotmarketing.util.WebKeys; 17 import com.liferay.portal.ejb.UserLocalManagerUtil; 18 import com.liferay.portal.ejb.UserManagerUtil; 19 import com.liferay.portal.model.Company; 20 import com.liferay.portal.model.User; 21 22 26 public class LoginFactory { 27 28 public static boolean doLogin(LoginForm form, HttpServletRequest request, HttpServletResponse response) { 29 return doLogin(form.getUserName(), form.getPassword(), form.isRememberMe(), request, response); 30 31 } 32 33 public static boolean doCookieLogin(String encryptedId, HttpServletRequest request, HttpServletResponse response) { 34 35 try { 36 String decryptedId = PublicEncryptionFactory.decryptString(encryptedId); 37 User user = UserLocalManagerUtil.getUserById(decryptedId); 38 return doLogin(user.getEmailAddress(), user.getPassword(), true, request, response); 39 40 } catch (Exception e) { 41 Logger.error(LoginFactory.class, "AutoLogin Failed" + e); 42 e.printStackTrace(System.out); 43 } 44 45 doLogout(request, response); 46 47 return false; 48 } 49 50 59 public static boolean doLogin(String userName, String password, boolean rememberMe, HttpServletRequest request, 60 HttpServletResponse response) { 61 try { 62 HttpSession ses = request.getSession(); 63 64 65 Company comp = com.dotmarketing.cms.factories.PublicCompanyFactory.getDefaultCompany(); 66 User user = null; 67 68 if (comp.getAuthType().equals(Company.AUTH_TYPE_EA)) { 69 user = PublicUserFactory.getUserByEmail(userName); 70 71 } else { 72 user = PublicUserFactory.getUserByUserId(userName); 73 } 74 75 if (user == null) { 76 return false; 77 } 78 79 80 81 if (user.isNew() || !user.isActive()) { 82 return false; 83 } 84 85 86 87 if (user.getPassword().equals(password) || user.getPassword().equals(PublicEncryptionFactory.digestString(password))) { 89 ses.setAttribute(WebKeys.CMS_USER, user); 91 92 user.setLastLoginDate(new java.util.Date ()); 93 PublicUserFactory.save(user); 94 96 97 Cookie idCookie = new Cookie (WebKeys.CMS_USER_ID_COOKIE, UserManagerUtil.encryptUserId(user.getUserId())); 99 idCookie.setPath("/"); 100 101 if (rememberMe) { 102 idCookie.setMaxAge(60 * 60 * 24 * 356); 103 } else { 104 idCookie.setMaxAge(-1); 105 } 106 response.addCookie(idCookie); 107 108 return true; 109 } 110 111 user.setFailedLoginAttempts(user.getFailedLoginAttempts()+1); 112 PublicUserFactory.save(user); 113 114 115 116 } catch (Exception e) { 117 Logger.error(LoginFactory.class, "Login Failed" + e); 118 e.printStackTrace(System.out); 119 } 120 121 doLogout(request, response); 122 123 return false; 124 } 125 126 public static void doLogout(HttpServletRequest request, HttpServletResponse response) { 127 128 134 135 request.getSession().removeAttribute("createAccountForm"); 136 request.getSession().removeAttribute("checkoutForm"); 137 request.getSession().removeAttribute(WebKeys.CMS_USER); 138 request.getSession().removeAttribute(WebKeys.REDIRECT_AFTER_LOGIN); 139 140 141 Cookie idCookie = new Cookie (WebKeys.CMS_USER_ID_COOKIE, null); 142 idCookie.setMaxAge(0); 143 idCookie.setPath("/"); 144 response.addCookie(idCookie); 145 146 } 147 } | Popular Tags |