Commit 5fbe1f74 authored by suntao's avatar suntao

账号同时只能有一个点登陆

parent 4c43fb75
...@@ -74,10 +74,14 @@ public class LoginServiceImpl implements LoginService { ...@@ -74,10 +74,14 @@ public class LoginServiceImpl implements LoginService {
principal.setRank(user.getRank()); principal.setRank(user.getRank());
principal.setRoles(user.getRoles()); principal.setRoles(user.getRoles());
long currentTimeMillis = System.currentTimeMillis();
session.setAttribute(ApplicationDictionary.PRINCIPAL, JSONTools.serialize(principal)); session.setAttribute(ApplicationDictionary.PRINCIPAL, JSONTools.serialize(principal));
session.setAttribute(ApplicationDictionary.USER_SESSION_LOGIN_TIME, currentTimeMillis);
// session登陆时间,毫秒值 // session登陆时间,毫秒值
// 用户登陆时间,毫秒值 // 用户登陆时间,毫秒值
loginInfo.put(userInfo.getUserId() + "", session.getLastAccessedTime());
log.info("[userId_time][{}],sessionId={}", currentTimeMillis, session.getId());
loginInfo.put(userInfo.getUserId() + "", currentTimeMillis);
return session.getId(); return session.getId();
......
...@@ -345,14 +345,20 @@ public class Assert { ...@@ -345,14 +345,20 @@ public class Assert {
} }
// 获取session最后登陆时间 // 获取session最后登陆时间
Long lastAccessedTime = session.getLastAccessedTime(); Object creationTimeObject = session.getAttribute(ApplicationDictionary.USER_SESSION_LOGIN_TIME);
if (Objects.isNull(lastAccessedTime)) { if (Objects.isNull(creationTimeObject)) {
System.out.println("lastAccessedTime 为空"); System.out.println("lastAccessedTime 为空");
return; return;
} }
System.out.println(creationTimeObject.toString() + "=creationTime,session=" + session.getId());
if (lastAccessedTime < Long.valueOf(userLastLoginTimeObject.toString())) { System.out.println(userLastLoginTimeObject.toString() + "=userLastLoginTimeObject,session=" + session.getId());
throw new ApplicationException(authenticationLoginCrowdOut);
try {
if (Long.valueOf(creationTimeObject.toString()) < Long.valueOf(userLastLoginTimeObject.toString())) {
throw new ApplicationException(authenticationLoginCrowdOut);
}
} catch (NumberFormatException e) {
return;
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment