1 25 29 package org.jresearch.gossip.actions.user; 30 31 import java.sql.SQLException ; 32 33 import javax.servlet.http.Cookie ; 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 import javax.servlet.http.HttpSession ; 37 38 import org.apache.struts.action.ActionForm; 39 import org.apache.struts.action.ActionForward; 40 import org.apache.struts.action.ActionMapping; 41 import org.apache.struts.action.ActionMessage; 42 import org.apache.struts.action.ActionMessages; 43 import org.jresearch.gossip.IConst; 44 import org.jresearch.gossip.actions.BaseAction; 45 import org.jresearch.gossip.beans.user.User; 46 import org.jresearch.gossip.configuration.Configurator; 47 import org.jresearch.gossip.dao.UserDAO; 48 import org.jresearch.gossip.exception.SystemException; 49 import org.jresearch.gossip.forms.ChangePasswordForm; 50 import org.jresearch.gossip.util.MD5Digest; 51 52 57 public class ChangePasswordAction extends BaseAction { 58 72 public ActionForward process(ActionMapping mapping, ActionForm form, 73 HttpServletRequest request, HttpServletResponse response) 74 throws SystemException { 75 if (IConst.VALUES.FALSE.equals(Configurator.getInstance().get( 76 IConst.CONFIG.ENABLE_FORUM_SIGN_ON))) { 77 return (mapping.findForward(IConst.TOKEN.DENIED)); 78 } 79 80 HttpSession session = request.getSession(); 81 82 User user = (User) session.getAttribute(IConst.SESSION.USER_KEY); 83 UserDAO dao = UserDAO.getInstance(); 84 85 try { 86 87 if (MD5Digest.digest(user.getName(), 88 ((ChangePasswordForm) form).getPassword()).equals( 89 user.getPassword())) { 90 dao.changePassword(((ChangePasswordForm) form).getPassword1(), 91 user.getName()); 92 log(request, "logs.LOG8"); 93 user = dao.getUser(user.getName(), ((ChangePasswordForm) form) 94 .getPassword1()); 95 96 if (IConst.VALUES.TRUE.equals(Configurator.getInstance().get( 97 IConst.CONFIG.ENABLE_AUTO_LOGIN))) { 98 if (user.getSettings().isAutologin()) { 100 Cookie userCookie = new Cookie ( 101 IConst.COOKIE.USER_COOKIE, user.getName() + "*" 102 + user.getPassword()); 103 userCookie.setMaxAge(IConst.COOKIE.SECONDS_PER_YEAR); 104 ((HttpServletResponse ) response).addCookie(userCookie); 105 } 106 } 107 108 user.setIp(request.getRemoteAddr()); 109 session.setAttribute(IConst.SESSION.USER_KEY, user); 110 setStatusMessage(request, "status.CH_PASS"); 111 } else { 112 ActionMessages errors = new ActionMessages(); 113 errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage( 114 "errors.ERR24")); 115 saveErrors(request, errors); 116 117 return (mapping.getInputForward()); 118 } 119 } catch (SQLException sqle) { 120 getServlet().log("Connection.process", sqle); 121 throw new SystemException(sqle); 122 } 123 124 return (mapping.findForward(IConst.TOKEN.WELCOME)); 125 } 126 } 127 | Popular Tags |