From 7936afbf0d9c9f54f70baddcf6dd24a7fe37a1f9 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Fri, 20 Sep 2024 16:08:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(X-Pack):=20CAS=E7=99=BB=E5=BD=95session?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E5=90=8E=E7=B3=BB=E7=BB=9F=E6=9C=AA=E9=80=80?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/auth/config/cas/CasStrategy.java | 2 +- core/frontend/src/utils/request.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/backend/src/main/java/io/dataease/auth/config/cas/CasStrategy.java b/core/backend/src/main/java/io/dataease/auth/config/cas/CasStrategy.java index b1b6990dff..29b8f82e17 100644 --- a/core/backend/src/main/java/io/dataease/auth/config/cas/CasStrategy.java +++ b/core/backend/src/main/java/io/dataease/auth/config/cas/CasStrategy.java @@ -86,7 +86,7 @@ public class CasStrategy implements UrlPatternMatcherStrategy { try { DecodedJWT jwt = JWT.decode(token); Claim forShot = jwt.getClaim("forShot"); - return ObjectUtils.isNotEmpty(forShot) && forShot.asBoolean(); + return ObjectUtils.isNotEmpty(forShot) && !forShot.isNull() && forShot.asBoolean(); } catch (Exception e) { LogUtil.error(e.getMessage()); return false; diff --git a/core/frontend/src/utils/request.js b/core/frontend/src/utils/request.js index ffb4bb8e59..9cf17c2916 100644 --- a/core/frontend/src/utils/request.js +++ b/core/frontend/src/utils/request.js @@ -114,6 +114,7 @@ service.setTimeOut = time => { // 请根据实际需求修改 service.interceptors.response.use(response => { + checkCasRedirect(response) response.config.loading && tryHideLoading(store.getters.currentPath) checkAuth(response) Vue.prototype.$currentHttpRequestList.delete(response.config.url) @@ -191,4 +192,17 @@ const checkAuth = response => { store.dispatch('user/setLinkToken', linkToken) } } +const checkCasRedirect = (response) => { + if (!response || !response.data) { + return + } + const resData = response.data + const routine = resData.hasOwnProperty('success') + const redirectUrl = response?.request?.responseURL + if (resData && !routine && resData.startsWith(' { + location.reload() + }) + } +} export default service