优化login方法

Signed-off-by: zup <jiu3295282258@163.com>
main
laptop_zup 9 months ago committed by zup
parent fd23a16497
commit 99788763da

@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.util.Date;
import java.util.Objects;
/** /**
* *
@ -36,43 +37,46 @@ public class LoginController {
private ILoginfoService loginfoService; private ILoginfoService loginfoService;
@RequestMapping("login") @RequestMapping("login")
public ResultObj login(UserVo userVo,String code,HttpSession session){ public ResultObj login(UserVo userVo, String code, HttpSession session) {
//获得存储在session中的验证码 // 从 session 中获取验证码
String sessionCode = (String) session.getAttribute("code"); String sessionCode = (String) session.getAttribute("code");
if (code!=null&&sessionCode.equals(code)){ if (!Objects.equals(sessionCode, code)) {
return ResultObj.LOGIN_ERROR_CODE; // 验证码错误
}
// 验证码使用后清除
session.removeAttribute("code");
Subject subject = SecurityUtils.getSubject(); Subject subject = SecurityUtils.getSubject();
AuthenticationToken token = new UsernamePasswordToken(userVo.getLoginname(),userVo.getPwd()); AuthenticationToken token = new UsernamePasswordToken(userVo.getLoginname(), userVo.getPwd());
try { try {
//对用户进行认证登陆 // 用户认证
subject.login(token); subject.login(token);
//通过subject获取以认证活动的user
ActiverUser activerUser = (ActiverUser) subject.getPrincipal(); ActiverUser activerUser = (ActiverUser) subject.getPrincipal();
//将user存储到session中
WebUtils.getSession().setAttribute("user",activerUser.getUser()); // 存储用户信息到 session
//记录登陆日志 WebUtils.getSession().setAttribute("user", activerUser.getUser());
// 记录登录日志
Loginfo entity = new Loginfo(); Loginfo entity = new Loginfo();
entity.setLoginname(activerUser.getUser().getName()+"-"+activerUser.getUser().getLoginname()); entity.setLoginname(activerUser.getUser().getName() + "-" + activerUser.getUser().getLoginname());
entity.setLoginip(WebUtils.getRequest().getRemoteAddr()); entity.setLoginip(WebUtils.getRequest().getRemoteAddr());
entity.setLogintime(new Date()); entity.setLogintime(new Date());
loginfoService.save(entity); loginfoService.save(entity);
return ResultObj.LOGIN_SUCCESS; return ResultObj.LOGIN_SUCCESS;
} catch (AuthenticationException e) { } catch (AuthenticationException e) { // 其他认证错误
e.printStackTrace(); e.printStackTrace();
return ResultObj.LOGIN_ERROR_PASS; return ResultObj.LOGIN_ERROR_PASS;
} }
}else {
return ResultObj.LOGIN_ERROR_CODE;
} }
}
/** /**
* *
* @param response * @param response
* @param session * @param session
* @throws IOException
*/ */
@RequestMapping("getCode") @RequestMapping("getCode")
public void getCode(HttpServletResponse response, HttpSession session) throws IOException{ public void getCode(HttpServletResponse response, HttpSession session) throws IOException{

Loading…
Cancel
Save