From 7094edbd2b330823483ae302382d5d9abde3cabb Mon Sep 17 00:00:00 2001 From: xuyuxiang Date: Thu, 13 Oct 2022 14:54:02 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91=E5=8D=87?= =?UTF-8?q?=E7=BA=A7satoken=E4=B8=BA1.31.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- snowy-plugin-api/snowy-plugin-auth-api/pom.xml | 2 +- .../vip/xiaonuo/auth/core/util/StpClientUtil.java | 12 ++++++------ snowy-plugin/snowy-plugin-auth/pom.xml | 2 +- .../xiaonuo/auth/core/util/AuthExceptionUtil.java | 6 +++--- .../auth/modular/login/listener/AuthListener.java | 10 ++++++++-- .../service/impl/AuthSessionServiceImpl.java | 14 +++++++------- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/snowy-plugin-api/snowy-plugin-auth-api/pom.xml b/snowy-plugin-api/snowy-plugin-auth-api/pom.xml index 36653bf4..808a79b4 100644 --- a/snowy-plugin-api/snowy-plugin-auth-api/pom.xml +++ b/snowy-plugin-api/snowy-plugin-auth-api/pom.xml @@ -15,7 +15,7 @@ 登录鉴权插件api接口 - 1.30.0 + 1.31.0 diff --git a/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/util/StpClientUtil.java b/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/util/StpClientUtil.java index bc7b929b..b68cee96 100644 --- a/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/util/StpClientUtil.java +++ b/snowy-plugin-api/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/util/StpClientUtil.java @@ -708,8 +708,8 @@ public class StpClientUtil { * @param size 获取数量 * @return token集合 */ - public static List searchTokenValue(String keyword, int start, int size) { - return stpLogic.searchTokenValue(keyword, start, size); + public static List searchTokenValue(String keyword, int start, int size, boolean sortType) { + return stpLogic.searchTokenValue(keyword, start, size, sortType); } /** @@ -719,8 +719,8 @@ public class StpClientUtil { * @param size 获取数量 * @return sessionId集合 */ - public static List searchSessionId(String keyword, int start, int size) { - return stpLogic.searchSessionId(keyword, start, size); + public static List searchSessionId(String keyword, int start, int size, boolean sortType) { + return stpLogic.searchSessionId(keyword, start, size, sortType); } /** @@ -730,8 +730,8 @@ public class StpClientUtil { * @param size 获取数量 * @return sessionId集合 */ - public static List searchTokenSessionId(String keyword, int start, int size) { - return stpLogic.searchTokenSessionId(keyword, start, size); + public static List searchTokenSessionId(String keyword, int start, int size, boolean sortType) { + return stpLogic.searchTokenSessionId(keyword, start, size, sortType); } diff --git a/snowy-plugin/snowy-plugin-auth/pom.xml b/snowy-plugin/snowy-plugin-auth/pom.xml index 88d6b267..0b45899b 100644 --- a/snowy-plugin/snowy-plugin-auth/pom.xml +++ b/snowy-plugin/snowy-plugin-auth/pom.xml @@ -15,7 +15,7 @@ 登录鉴权插件 - 1.30.0 + 1.31.0 1.16.5 diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/core/util/AuthExceptionUtil.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/core/util/AuthExceptionUtil.java index 29dfadcc..e980273e 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/core/util/AuthExceptionUtil.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/core/util/AuthExceptionUtil.java @@ -46,11 +46,11 @@ public class AuthExceptionUtil { // 如果是权限异常 403 NotPermissionException notPermissionException = (NotPermissionException) e; commonResult = CommonResult.get(HttpStatus.HTTP_FORBIDDEN, "无此权限:" + notPermissionException.getPermission(), null); - } else if (e instanceof DisableLoginException) { + } else if (e instanceof DisableServiceException) { // 如果是被封禁异常 403 - DisableLoginException disableLoginException = (DisableLoginException) e; - commonResult = CommonResult.get(HttpStatus.HTTP_FORBIDDEN, "账号被封禁:" + disableLoginException.getDisableTime() + "秒后解封", null); + DisableServiceException disableServiceException = (DisableServiceException) e; + commonResult = CommonResult.get(HttpStatus.HTTP_FORBIDDEN, "账号被封禁:" + disableServiceException.getDisableTime() + "秒后解封", null); } else if (e instanceof SaTokenException) { // 如果是SaToken异常 直接返回 diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/listener/AuthListener.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/listener/AuthListener.java index d1480b2d..7fb64da4 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/listener/AuthListener.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/login/listener/AuthListener.java @@ -88,13 +88,13 @@ public class AuthListener implements SaTokenListener { /** 每次被封禁时触发 */ @Override - public void doDisable(String loginType, Object loginId, long disableTime) { + public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) { // ... } /** 每次被解封时触发 */ @Override - public void doUntieDisable(String loginType, Object loginId) { + public void doUntieDisable(String loginType, Object loginId, String service) { // ... } @@ -109,4 +109,10 @@ public class AuthListener implements SaTokenListener { public void doLogoutSession(String id) { // ... } + + /** 每次Token续期时触发 */ + @Override + public void doRenewTimeout(String tokenValue, Object loginId, long timeout) { + // ... + } } diff --git a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/monitor/service/impl/AuthSessionServiceImpl.java b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/monitor/service/impl/AuthSessionServiceImpl.java index 4f40262d..6110bb8f 100644 --- a/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/monitor/service/impl/AuthSessionServiceImpl.java +++ b/snowy-plugin/snowy-plugin-auth/src/main/java/vip/xiaonuo/auth/modular/monitor/service/impl/AuthSessionServiceImpl.java @@ -62,7 +62,7 @@ public class AuthSessionServiceImpl implements AuthSessionService { @Override public AuthSessionAnalysisResult analysis() { AuthSessionAnalysisResult authSessionAnalysisResult = new AuthSessionAnalysisResult(); - List sessionListB = StpUtil.searchSessionId("", -1, -1).stream().map(sessionId -> { + List sessionListB = StpUtil.searchSessionId("", -1, -1, true).stream().map(sessionId -> { JSONObject jsonObject = JSONUtil.createObj(); String userId = StrUtil.split(sessionId, StrUtil.COLON).get(3); SaSession saSession = StpUtil.getSessionByLoginId(userId, false); @@ -74,7 +74,7 @@ public class AuthSessionServiceImpl implements AuthSessionService { return jsonObject; }).collect(Collectors.toList()); - List sessionListC = StpClientUtil.searchSessionId("", -1, -1).stream().map(sessionId -> { + List sessionListC = StpClientUtil.searchSessionId("", -1, -1, true).stream().map(sessionId -> { JSONObject jsonObject = JSONUtil.createObj(); String userId = StrUtil.split(sessionId, StrUtil.COLON).get(3); SaSession saSession = StpClientUtil.getSessionByLoginId(userId, false); @@ -107,7 +107,7 @@ public class AuthSessionServiceImpl implements AuthSessionService { public Page pageForB(AuthSessionPageParam authSessionPageParam) { Page defaultPage = CommonPageRequest.defaultPage(); long current = defaultPage.getCurrent(); - int total = StpUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize())).size(); + int total = StpUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size(); if(ObjectUtil.isNotEmpty(total)) { defaultPage = new Page<>(current, defaultPage.getSize(), total); String keyword = ""; @@ -116,7 +116,7 @@ public class AuthSessionServiceImpl implements AuthSessionService { } List userIdList = StpUtil.searchSessionId(keyword, Convert.toInt((current - 1) * defaultPage.getSize()), - Convert.toInt(defaultPage.getSize())).stream().map(sessionId -> + Convert.toInt(defaultPage.getSize()), true).stream().map(sessionId -> StrUtil.split(sessionId, StrUtil.COLON).get(3)).collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(userIdList)) { List authSessionPageResultList = loginUserApi.listUserByUserIdList(userIdList).stream().map(userJsonObject -> { @@ -164,7 +164,7 @@ public class AuthSessionServiceImpl implements AuthSessionService { public Page pageForC(AuthSessionPageParam authSessionPageParam) { Page defaultPage = CommonPageRequest.defaultPage(); long current = defaultPage.getCurrent(); - int total = StpClientUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize())).size(); + int total = StpClientUtil.searchSessionId("", -1, Convert.toInt(defaultPage.getSize()), true).size(); if(ObjectUtil.isNotEmpty(total)) { defaultPage = new Page<>(current, defaultPage.getSize(), total); String keyword = ""; @@ -173,10 +173,10 @@ public class AuthSessionServiceImpl implements AuthSessionService { } List userIdList = StpClientUtil.searchSessionId(keyword, Convert.toInt((current - 1) * defaultPage.getSize()), - Convert.toInt(defaultPage.getSize())).stream().map(sessionId -> + Convert.toInt(defaultPage.getSize()), true).stream().map(sessionId -> StrUtil.split(sessionId, StrUtil.COLON).get(3)).collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(userIdList)) { - List authSessionPageResultList = loginUserApi.listUserByUserIdList(userIdList).stream().map(userJsonObject -> { + List authSessionPageResultList = clientLoginUserApi.listUserByUserIdList(userIdList).stream().map(userJsonObject -> { SaSession saSession = StpClientUtil.getSessionByLoginId(userJsonObject.getStr("id"), false); AuthSessionPageResult authSessionPageResult = JSONUtil.toBean(userJsonObject, AuthSessionPageResult.class); authSessionPageResult.setSessionId(saSession.getId());