登录业务逻辑思路

首先获得页面上传输过来的账号和密码,远程地址(RemoteAddress),登录时的SessionId,是否为客户端来 判断是否可以登录

String loginToken = this.getUserService().login(username, password, this.getRequest().getRemoteAddr(), this.getSession().getId(), false);

在此业务逻辑中首先实例化一个User和SysUser  通过username 来调用userDao来判断SysUser是否存在 如果SysUser为null则说明用户不存在,抛出异常.

将从数据库查到的SysUSer 得到的属性(例如邮箱等信息) 赋值给User ,再通过User 和传过来的password (如果传值为NULL则变成"") 判断,

如果user.getPassWord不等于 传过来的password值 ,则将user重试次数+1  (通过检查则将重试次数重置为0次) 如果重试次数到到设定次数则锁定user


当账号密码都正确时,判断用户状态,是否需要重置密码,是否已停用,是否已过期, 

判断用户是否已经登录:如果用户还未登录就给用户设置一个LoginToken 并开启线程同步锁(ReentrantLock) 把  LoginToken 和传值SessionId(Session 保存在List<String> 中) 保存在 map  中 ->   Map<String, List<String>> mapToken2SessionId = new HashMap<String, List<String>>()  

最后返回LoginToken (login 方法) -> 通过LoginAction调用 得到一个LoginToken  将loginToken 写入Session中 


如果loginToken 不为null 则 登录成功







  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值