package com.conant.order.web.controller; import java.util.*; import javax.servlet.http.*; import org.springframework.validation.*; import org.springframework.web.servlet.*; import org.springframework.web.servlet.mvc.*; import com.conant.order.util.Logger; import com.conant.order.web.form.LoginForm; import com.conant.order.util.ProcessException; import com.conant.order.common.PageMsg; import com.conant.ums.interfaces.AuthService; import com.conant.ums.lbean.Validate; import com.conant.ums.data.F130_UserMgt; import com.conant.ums.data.F180_OperMgt; import com.conant.order.common.SessionMap; /** * <p>Title: Online Order Management System</p> * * <p>Description: </p> * * <p>Copyright: Copyright (c) 2008</p> * * <p>Company: conant</p> * * @author Martin * @version 1.0 */ public class LoginController extends SimpleFormController { private static Logger log = Logger.getLogger("login", Logger.DEBUG, true); // private CpeProcessorItf cpeItf; public LoginController() { this.setCommandClass(LoginForm.class); this.setCacheSeconds(100); } //�ύ������ protected ModelAndView onSubmit( HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws ProcessException, Exception { //0:��ʼ���� LoginForm loginInfo = (LoginForm) command; PageMsg msg = new PageMsg(); msg.setUrl("login.ord"); msg.setTarget("_self"); try { //1:��ȡsession HttpSession session = request.getSession(true); session.setMaxInactiveInterval(10 * 60); String ip = request.getRemoteAddr(); if (ip == null) { ip = "IPδ֪"; } //2:�����֤�������� // if (!loginInfo.getValiCode().equals(session.getAttribute("rand"))) { // msg.setMsg("��֤������ʧЧ"); // return new ModelAndView("common/err", "error", msg); // } //check username and password AuthService as = new Validate(); if (null == loginInfo.getUserName() || "".equals(loginInfo.getUserName().trim())) { msg.setMsg("Please input user name!"); return new ModelAndView("common/err", "error", msg); } if (null == loginInfo.getPassword() || "".equals(loginInfo.getPassword().trim())) { msg.setMsg("Please input password"); return new ModelAndView("common/err", "error", msg); } int result = as.login(loginInfo.getUserName().trim(), loginInfo.getPassword().trim(), ip); F130_UserMgt userData = as.loginData(loginInfo.getUserName().trim()); //3:�����¼������� // @return 1���ɹ�, 0���û������ڻ��������, -1���û�������, // -2���û�ip������, -3���û�ʱ�������� // System.out.println("result==="+result); if (result <= 0) { String info = "��¼ʧ��"; switch (result) { case 0: info = "�û������ڻ��������"; break; case -1: info = "�û�������"; break; case -2: info = "�û�IP������"; break; case -3: info = "�û�ʱ��������"; break; case -4: return new ModelAndView("reset_password", "userId", loginInfo.getUserName()); default: info = "��¼ʧ��"; } msg.setMsg(info); return new ModelAndView("common/err", "error", msg); } //cmdlist List list = as.operList(loginInfo.getUserName()); HashMap map = new HashMap(); for (int i = 0; i < list.size(); i++) { map.put(((F180_OperMgt) list.get(i)).getOperId(), Integer.valueOf("1")); } String loginId = String.valueOf(result); //4:���session�д���loginId,����ո�session�е��������� try { if (session.getAttribute("loginId") != null) { //�����˳��ӿ� as.logout((String) session.getAttribute("loginId")); // SessionMap.getOneInstance().remove((String) session. getAttribute("loginId")); //write log String user_name = (String) session.getAttribute( "user_name"); Enumeration en = session.getAttributeNames(); String e = ""; while (en.hasMoreElements()) { e = (String) en.nextElement(); session.removeAttribute(e); } } } catch (Exception e) { e.printStackTrace(); } //5:����������� session.setAttribute("cmdMap", map); session.setAttribute("user_name", loginInfo.getUserName()); //�û��ʺ� session.setAttribute("loginId", loginId); session.setAttribute("userName", userData.getUser_name()); //user_name�û����� session.setAttribute("email", userData.getEmail()); //email���� session.setAttribute("address", userData.getAddress()); //address��ַ session.setAttribute("mobile", userData.getMobile()); //mobile�ֻ� session.setAttribute("home_tel", userData.getHome_tel()); //home_tel��ͥ�绰 session.setAttribute("dept_name", userData.getDept_name()); //dept_name�������� session.setAttribute("area", userData.getArea()); //dept_name�������� session.setAttribute("ip", ip); if (session.getAttribute("refreshpage") != null) { session.removeAttribute("refreshpage"); } SessionMap.getOneInstance().put(loginId, session); //6:д��־ // LogFactory.getLogProcessor().writeOperateLog(401002, // loginInfo.getUserName(), ip, true, "��¼�ɹ�"); //7:���� // System.out.println("login id ===="+session.getAttribute("loginId")); return new ModelAndView(this.getSuccessView()); } catch (ProcessException e) { msg.setMsg(e.getErrorReason()); return new ModelAndView("common/err", "error", msg); } } // public void setCpeItf(CpeProcessorItf cpeItf) // { // this.cpeItf = cpeItf; // } }