session java web_JavaWeb之session应用

@PostMapping(value = "/login",produces="application/json;charset=utf-8")

@SysLog(type="后台系统",action="登录功能",method="POST")

@ApiOperation(value="登录",httpMethod="POST",notes="若登录后token未过期则返回原token,并按照预先定义的有效时间顺延,若过期则生成新token,有效期默认10小时")publicJSONObject getLockPwd(@RequestParam String username, @RequestParam String password, HttpSession session,HttpServletResponse response) {//接收前台参数

logger.info("用户名:"+username);

logger.info("密码:"+password);//调用查询逻辑

EntityWrapper wrapper = new EntityWrapper();

wrapper.eq("login_code", username);

SysUser user=userService.selectOne(wrapper);

JSONObject json= newJSONObject();if(user != null && "0".equals(user.getStatus())) {//获取当前用户

Subject subject =SecurityUtils.getSubject();//根据前台传的用户名和密码进行认证

UsernamePasswordToken token = newUsernamePasswordToken(username, password);try{//认证通过

subject.login(token);

String encode=Base64.encode(user.getUserCode());//Cookie有效期默认为8小时

int time=28800;//将Cookie加密为16进制字符串

CookieUtils.setCookie(response, "userCode", encode, time);

user.setLastLoginDate(DateUtil.date());

userService.updateById(user);//将userCode放入session中保存

session.setAttribute("userCode", user.getUserCode());

json.put("token", subject.getSession().getId());

json.put(CommonEnum.RETURN_CODE,"000000");

json.put(CommonEnum.RETURN_MSG,"登录成功");

}catch(IncorrectCredentialsException e) {

json.put(CommonEnum.RETURN_CODE,"111111");

json.put(CommonEnum.RETURN_MSG,"用户名或密码错误");

}catch(Exception e) {

json.put(CommonEnum.RETURN_CODE,"222222");

json.put(CommonEnum.RETURN_MSG,"特殊异常");

}

}else{

json.put(CommonEnum.RETURN_CODE,"500");

json.put(CommonEnum.RETURN_MSG,"用户不存在");

}returnjson;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值