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