KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > login > factories > LoginFactory


1 /*
2  * Created on Oct 7, 2004
3  *
4  */

5 package com.dotmarketing.cms.login.factories;
6
7 import javax.servlet.http.Cookie JavaDoc;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10 import javax.servlet.http.HttpSession JavaDoc;
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 /**
23  * @author will
24  *
25  */

26 public class LoginFactory {
27
28     public static boolean doLogin(LoginForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
29         return doLogin(form.getUserName(), form.getPassword(), form.isRememberMe(), request, response);
30
31     }
32
33     public static boolean doCookieLogin(String JavaDoc encryptedId, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
34
35         try {
36             String JavaDoc decryptedId = PublicEncryptionFactory.decryptString(encryptedId);
37             User user = UserLocalManagerUtil.getUserById(decryptedId);
38             return doLogin(user.getEmailAddress(), user.getPassword(), true, request, response);
39
40         } catch (Exception JavaDoc 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     /**
51      *
52      * @param userName
53      * @param password
54      * @param rememberMe
55      * @param request
56      * @param response
57      * @return
58      */

59     public static boolean doLogin(String JavaDoc userName, String JavaDoc password, boolean rememberMe, HttpServletRequest JavaDoc request,
60             HttpServletResponse JavaDoc response) {
61         try {
62             HttpSession JavaDoc 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 passwords match
88
if (user.getPassword().equals(password) || user.getPassword().equals(PublicEncryptionFactory.digestString(password))) {
89                 // session stuff
90
ses.setAttribute(WebKeys.CMS_USER, user);
91
92                 user.setLastLoginDate(new java.util.Date JavaDoc());
93                 PublicUserFactory.save(user);
94                 //set personalization stuff on session
95

96
97                 // set id cookie
98
Cookie JavaDoc idCookie = new Cookie JavaDoc(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 JavaDoc 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 JavaDoc request, HttpServletResponse JavaDoc response) {
127
128         //request.getSession().invalidate();
129
/*
130          * request.getSession().removeAttribute(WebKeys.SESSION_USER);
131          * request.getSession().removeAttribute(com.liferay.portal.util.WebKeys.USER_ID);
132          * request.getSession().removeAttribute(com.liferay.portal.util.WebKeys.USER);
133          */

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 JavaDoc idCookie = new Cookie JavaDoc(WebKeys.CMS_USER_ID_COOKIE, null);
142         idCookie.setMaxAge(0);
143         idCookie.setPath("/");
144         response.addCookie(idCookie);
145
146     }
147 }
Popular Tags