From 28e1cd6f1db3f9ef8941abca0aca8821951768a7 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Sun, 19 Aug 2018 17:32:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E4=BD=8F=E6=88=91=E7=9A=84=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=9C=A8=E7=BA=BF=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=B8=A2=E5=87=BA=E7=94=A8=E6=88=B7=E6=97=A0=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeesite/modules/sys/web/LoginController.java | 4 ++-- .../jeesite/modules/sys/web/OnlineController.java | 13 +++++++++++++ .../i18n/core/common/i18n_zh_CN.properties | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java index 20559ee6..5db60e49 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java @@ -231,10 +231,10 @@ public class LoginController extends BaseController{ Session session = UserUtils.getSession(); // 是否是登录操作 - boolean isLogin = "true".equals(loginInfo.getParam("__login")); + boolean isLogin = "true".equals(session.getAttribute("__login")); if (isLogin){ // 获取后接着清除,防止下次获取仍然认为是登录状态 - loginInfo.getParams().remove("__login"); + session.removeAttribute("__login"); // 设置共享SessionId的Cookie值(第三方系统使用) String cookieName = Global.getProperty("session.shareSessionIdCookieName"); if (StringUtils.isNotBlank(cookieName)){ diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java index a76a9b9f..f14c61fd 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/OnlineController.java @@ -25,6 +25,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.beust.jcommander.internal.Lists; 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.lang.DateUtils; import com.jeesite.common.lang.ObjectUtils; @@ -145,6 +147,17 @@ public class OnlineController extends BaseController{ public String tickOut(String sessionId) { Session session = sessionDAO.readSession(sessionId); if (session != null){ + @SuppressWarnings("unchecked") + Map onlineTickOutMap = (Map)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); return renderResult(Global.TRUE, "踢出已成功!"); } diff --git a/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties b/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties index 308883e9..f84d3b4f 100644 --- a/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties +++ b/modules/core/src/main/resources/i18n/core/common/i18n_zh_CN.properties @@ -16,6 +16,7 @@ sys.login.accountDisabled=该帐号已停用。 sys.login.accountFreezed=该帐号已冻结。 sys.login.accountAudited=该帐号待审核。 sys.login.accountInvalid=该帐号无效。 +sys.login.tickOutMessage=账号已被管理员移出在线,请重新登录。 sys.login.multiAddrMessage=账号已在其它地方登录,请重新登录。 sys.login.failedNumLock=登录失败,尝试次数过多,账号已锁定,请 {0} 分钟后重试.