📄 loginaction.java
字号:
package com.isoftstone.isscrmweb.web.struts.system;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.pontifex.util.StringUtil;
import org.pontifex.util.security.ImgCheckCode;
import org.pontifex.web.mapping.LoginUser;
import com.isoftstone.isscrmweb.web.struts.AbstractDynamicAction;
import com.isoftstone.isscrmweb.web.logic.system.LoginLogic;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Enumeration;
/**
* Created by IntelliJ IDEA.
* User: Songzou
* Date: 2007-4-8
* Time: 11:21:36
*
* 登陆控制器
*/
public class LoginAction extends AbstractDynamicAction {
public static final String MENU = "MENU";// 用户菜单在request中的key
private LoginLogic loginLogic;
public void setLoginLogic(LoginLogic loginLogic) {
this.loginLogic = loginLogic;
}
/**
* 登陆初始化方法
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward loginInit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
}
public ActionForward loginCheckCode(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ImgCheckCode check = new ImgCheckCode(60,18);
session.setAttribute("charRandomCode", check.getCharRandomCode());
ImageIO.write(check.getImageRandomCode(), "JPEG", response.getOutputStream());
return null;
}
public ActionForward loginSeeCheckCode(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.setCharacterEncoding("GBK");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write("<img src='loginAction.do?method=loginCheckCode' width='60' height='18' >");
out.flush();
out.close();
return null;
}
/**
* 登陆验证方法
*
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward loginPost(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Object _obj = servletContext.getAttribute("randomCheckCode");
if(_obj!=null&& _obj instanceof Boolean){
if((Boolean)_obj){
String checkCode= request.getParameter("charRandomCode");
String sessionCheckCode = (String)session.getAttribute("charRandomCode");
if(sessionCheckCode==null) {
request.setAttribute("message", "请输入验证码!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
}
if((checkCode==null)||(!sessionCheckCode.equals(checkCode))){
request.setAttribute("message", "验证码错误!");
return mapping.findForward("loginInit");
}
}
}
LoginUser loginUser = new LoginUser();
String loginUserCode = request.getParameter("loginUserCode");
String loginPassword = request.getParameter("loginPassword");
loginUser.setLoginUserCode(loginUserCode);
loginUser.setLoginPassword(loginPassword);
loginUser.setRealPath(getRealPath("/WEB-INF/config/"));
Map<String,Object> map = new HashMap<String,Object>();
switch (loginLogic.checkAdmin(loginUser, map)) {
case 1:// 超级管理员登陆成功
session.removeAttribute("charRandomCode");
session.setAttribute(LOGIN_USER_KEY, loginUser);
session.setAttribute(LOGIN_USER_ACTION_KEY, map.get("actionSet"));
request.setAttribute(MENU, map.get("menuList"));
return mapping.findForward("main");
case 2:// 超级管理员登陆密码错误
request.setAttribute("message", "该用户密码错误!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
default:
break;
}
switch (loginLogic.checkUser(loginUser, map)) {
case 0:// 用户名不存在
request.setAttribute("message", "该用户不存在!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
case 1:// 用户登陆成功
session.removeAttribute("charRandomCode");
session.setAttribute(LOGIN_USER_KEY, loginUser);
session.setAttribute(LOGIN_USER_ACTION_KEY, map.get("actionSet"));
request.setAttribute(MENU, map.get("menuList"));
return mapping.findForward("main");
case 2:// 帐户未启用
request.setAttribute("message", "该用户未被启用!!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
case 3:// 用户登陆密码错误
request.setAttribute("message", "该用户密码错误!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
case 4:// 用户已经被禁用
request.setAttribute("message", "该用户已经被禁用!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
case 5: //用户角色被禁用
request.setAttribute("message", "该用户的角色已被禁用!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
case 6: //用户被删除
request.setAttribute("message", "该用户已被删除!");
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
default:
return null;
}
}
public ActionForward loginOut(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Enumeration enumerations = session.getAttributeNames();
while (enumerations.hasMoreElements()) {
Object key = enumerations.nextElement();
session.removeAttribute(key.toString());
}
session.setAttribute("charRandomCode", StringUtil.getRandomChar(4));
return mapping.findForward("loginInit");
}
public ActionForward sorry(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("sorry");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -