登录controller
package com.zx.znydweb.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zx.znyd.common.LoginLock;
import com.zx.znyd.common.SpringContextUtil;
import com.zx.znyd.dao.UserDao;
import com.zx.znyd.data.model.User;
import com.zx.znydweb.interceptor.CheckLoggin;
@Controller
public class LoginController {
private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
public static final String LOGINUSER = "LOGINUSER";
public static final String ERRORMsg = "LoginController_ERRORMsg";
public static final String USERNAME = "userName";
public static final String PASSWORD = "passWord";
@Autowired
LoginLock redisUtil;
@ResponseBody
@RequestMapping(value = "/", method = RequestMethod.POST)
public Map<String, Object> login(String userName, String passWord, String piccode, HttpSession session,
HttpServletRequest req) {
//经过滤器过滤后重新赋值
passWord = req.getParameter("passWord");
piccode = req.getParameter("piccode");
userName = req.getParameter("userName");
logger.trace("=======login====,{},{},{}", userName, passWord, piccode);
Map<String, Object> retMap = new HashMap<String, Object>();
// 判断该用户是否被锁
boolean isLock = redisUtil.isLoginLock(userName);
if(isLock) {
logger.info("用户"+userName+"被锁定,请在5分钟之后重试:"+isLock);
retMap.put("returnCode", "999");
retMap.put("returnMessage", "用户"+userName+"被锁定,请在5分钟之后重试");
return retMap;
}
if (session.getAttribute(LOGINUSER) == null) {
String sessionPicCode = (String) session.getAttribute(VerifyCodeController.verifyCode);
if (!checkLogInData(userName, passWord, piccode, retMap)) {
session.setAttribute(ERRORMsg, retMap.get("returnMessage"));
session.setAttribute(USERNAME, userName);
session.setAttribute(PASSWORD, passWord);
} else if (!(sessionPicCode != null && sessionPicCode.equalsIgnoreCase(piccode))) {
session.setAttribute(ERRORMsg, "验证码错误");
session.setAttribute(USERNAME, userName);
session.setAttribute(PASSWORD, passWord);
} else {
UserDao userDao = SpringContextUtil.getBean(UserDao.class);
try {
User u = userDao.findOneByUsernameAndPass