记住我的账号,使用在线列表踢出用户无效问题修正。
This commit is contained in:
@@ -231,10 +231,10 @@ public class LoginController extends BaseController{
|
|||||||
Session session = UserUtils.getSession();
|
Session session = UserUtils.getSession();
|
||||||
|
|
||||||
// 是否是登录操作
|
// 是否是登录操作
|
||||||
boolean isLogin = "true".equals(loginInfo.getParam("__login"));
|
boolean isLogin = "true".equals(session.getAttribute("__login"));
|
||||||
if (isLogin){
|
if (isLogin){
|
||||||
// 获取后接着清除,防止下次获取仍然认为是登录状态
|
// 获取后接着清除,防止下次获取仍然认为是登录状态
|
||||||
loginInfo.getParams().remove("__login");
|
session.removeAttribute("__login");
|
||||||
// 设置共享SessionId的Cookie值(第三方系统使用)
|
// 设置共享SessionId的Cookie值(第三方系统使用)
|
||||||
String cookieName = Global.getProperty("session.shareSessionIdCookieName");
|
String cookieName = Global.getProperty("session.shareSessionIdCookieName");
|
||||||
if (StringUtils.isNotBlank(cookieName)){
|
if (StringUtils.isNotBlank(cookieName)){
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|||||||
|
|
||||||
import com.beust.jcommander.internal.Lists;
|
import com.beust.jcommander.internal.Lists;
|
||||||
import com.beust.jcommander.internal.Maps;
|
import com.beust.jcommander.internal.Maps;
|
||||||
|
import com.jeesite.common.cache.CacheUtils;
|
||||||
|
import com.jeesite.common.collect.MapUtils;
|
||||||
import com.jeesite.common.config.Global;
|
import com.jeesite.common.config.Global;
|
||||||
import com.jeesite.common.lang.DateUtils;
|
import com.jeesite.common.lang.DateUtils;
|
||||||
import com.jeesite.common.lang.ObjectUtils;
|
import com.jeesite.common.lang.ObjectUtils;
|
||||||
@@ -145,6 +147,17 @@ public class OnlineController extends BaseController{
|
|||||||
public String tickOut(String sessionId) {
|
public String tickOut(String sessionId) {
|
||||||
Session session = sessionDAO.readSession(sessionId);
|
Session session = sessionDAO.readSession(sessionId);
|
||||||
if (session != null){
|
if (session != null){
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
Map<String, String> onlineTickOutMap = (Map<String, String>)CacheUtils.get("onlineTickOutMap");
|
||||||
|
if (onlineTickOutMap == null){
|
||||||
|
onlineTickOutMap = MapUtils.newConcurrentMap();
|
||||||
|
}
|
||||||
|
PrincipalCollection pc = (PrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
|
||||||
|
LoginInfo principal = (pc != null ? (LoginInfo)pc.getPrimaryPrincipal() : null);
|
||||||
|
if (principal != null){
|
||||||
|
onlineTickOutMap.put(principal.getId()+"_"+principal.getParam("deviceType", "PC"), StringUtils.EMPTY);
|
||||||
|
}
|
||||||
|
CacheUtils.put("onlineTickOutMap", onlineTickOutMap);
|
||||||
sessionDAO.delete(session);
|
sessionDAO.delete(session);
|
||||||
return renderResult(Global.TRUE, "踢出已成功!");
|
return renderResult(Global.TRUE, "踢出已成功!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ sys.login.accountDisabled=该帐号已停用。
|
|||||||
sys.login.accountFreezed=该帐号已冻结。
|
sys.login.accountFreezed=该帐号已冻结。
|
||||||
sys.login.accountAudited=该帐号待审核。
|
sys.login.accountAudited=该帐号待审核。
|
||||||
sys.login.accountInvalid=该帐号无效。
|
sys.login.accountInvalid=该帐号无效。
|
||||||
|
sys.login.tickOutMessage=账号已被管理员移出在线,请重新登录。
|
||||||
sys.login.multiAddrMessage=账号已在其它地方登录,请重新登录。
|
sys.login.multiAddrMessage=账号已在其它地方登录,请重新登录。
|
||||||
sys.login.failedNumLock=登录失败,尝试次数过多,账号已锁定,请 {0} 分钟后重试.
|
sys.login.failedNumLock=登录失败,尝试次数过多,账号已锁定,请 {0} 分钟后重试.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user