diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java
index ac43dc69ce..e86731d06f 100644
--- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java
+++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java
@@ -12,6 +12,7 @@ import io.dataease.auth.service.AuthUserService;
import io.dataease.auth.util.JWTUtils;
import io.dataease.auth.util.RsaUtil;
import io.dataease.commons.constants.SysLogConstants;
+import io.dataease.commons.exception.DEException;
import io.dataease.commons.utils.*;
import io.dataease.controller.sys.request.LdapAddRequest;
import io.dataease.exception.DataEaseException;
@@ -240,8 +241,13 @@ public class AuthServer implements AuthApi {
HttpServletRequest request = ServletUtils.request();
String idToken = request.getHeader("IdToken");
if (StringUtils.isNotBlank(idToken)) {
- OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class);
- oidcXpackService.logout(idToken);
+ try {
+ OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class);
+ oidcXpackService.logout(idToken);
+ } catch (Exception e) {
+ LogUtil.error(e.getMessage(), e);
+ DEException.throwException("oidc_logout_error");
+ }
}
}
@@ -253,11 +259,16 @@ public class AuthServer implements AuthApi {
String result = null;
Integer defaultLoginType = systemParameterService.defaultLoginType();
if (defaultLoginType == 3 && isOpenCas()) {
- HttpServletRequest request = ServletUtils.request();
- HttpSession session = request.getSession();
- session.invalidate();
- CasXpackService casXpackService = SpringContextUtil.getBean(CasXpackService.class);
- result = casXpackService.logout();
+ try {
+ HttpServletRequest request = ServletUtils.request();
+ HttpSession session = request.getSession();
+ session.invalidate();
+ CasXpackService casXpackService = SpringContextUtil.getBean(CasXpackService.class);
+ result = casXpackService.logout();
+ } catch (Exception e) {
+ LogUtil.error(e.getMessage(), e);
+ DEException.throwException("cas_logout_error");
+ }
}
try {
Long userId = JWTUtils.tokenInfoByToken(token).getUserId();
diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java
index b92517f050..0fd46ef9a9 100644
--- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java
+++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java
@@ -86,6 +86,7 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/api/auth/isOpenWecom", ANON);
filterChainDefinitionMap.put("/api/auth/isOpenDingtalk", ANON);
filterChainDefinitionMap.put("/api/auth/isOpenLark", ANON);
+ filterChainDefinitionMap.put("/api/auth/isOpenCas", ANON);
filterChainDefinitionMap.put("/api/auth/isOpenLarksuite", ANON);
filterChainDefinitionMap.put("/api/auth/getPublicKey", ANON);
filterChainDefinitionMap.put("/api/pluginCommon/component/*", ANON);
@@ -106,6 +107,7 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/plugin/larksuite/bind*", ANON);
filterChainDefinitionMap.put("/plugin/larksuite/getQrParam", ANON);
filterChainDefinitionMap.put("/cas/reset/**", ANON);
+ filterChainDefinitionMap.put("/cas/loginPage", ANON);
filterChainDefinitionMap.put("/unauth", ANON);
filterChainDefinitionMap.put("/display/**", ANON);
diff --git a/backend/src/main/java/io/dataease/plugins/server/CasServer.java b/backend/src/main/java/io/dataease/plugins/server/CasServer.java
index c54639c1b3..9a68ebec93 100644
--- a/backend/src/main/java/io/dataease/plugins/server/CasServer.java
+++ b/backend/src/main/java/io/dataease/plugins/server/CasServer.java
@@ -115,4 +115,13 @@ public class CasServer {
return error;
}
}
+
+ @GetMapping("/loginPage")
+ @ResponseBody
+ public String loginPage() {
+ String casServerUrlPrefix = systemParameterService.getValue("cas.login");
+ String callBack = systemParameterService.getValue("cas.callBack");
+ String result = casServerUrlPrefix + "?service=" + callBack;
+ return result;
+ }
}
diff --git a/frontend/src/api/user.js b/frontend/src/api/user.js
index 32d2067307..ac4b3154b0 100644
--- a/frontend/src/api/user.js
+++ b/frontend/src/api/user.js
@@ -18,14 +18,16 @@ export function getInfo(token) {
export function logout() {
return request({
url: '/api/auth/logout',
- method: 'post'
+ method: 'post',
+ hideMsg: true
})
}
export function deLogout() {
return request({
url: '/api/auth/deLogout',
- method: 'post'
+ method: 'post',
+ hideMsg: true
})
}
@@ -100,6 +102,13 @@ export function casStatus() {
})
}
+export function casLoginPage() {
+ return request({
+ url: '/cas/loginPage',
+ method: 'get'
+ })
+}
+
export function wecomStatus() {
return request({
url: '/api/auth/isOpenWecom',
diff --git a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
index cf18c101c3..50407a9c93 100644
--- a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
+++ b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
@@ -195,7 +195,7 @@ export default {
return style
},
componentActiveFlag() {
- return (this.curComponent && this.config === this.curComponent && !this.previewVisible && !this.showPosition.includes('email-task')) || this.showPosition.includes('multiplexing')
+ return !this.mobileLayoutStatus && ((this.curComponent && this.config === this.curComponent && !this.previewVisible && !this.showPosition.includes('email-task')) || this.showPosition.includes('multiplexing'))
},
curGap() {
return (this.canvasStyleData.panel.gap === 'yes' && this.config.auxiliaryMatrix) ? this.componentGap : 0
diff --git a/frontend/src/components/widget/DeWidget/DeTabs.vue b/frontend/src/components/widget/DeWidget/DeTabs.vue
index edb11049dd..b97cd577fd 100644
--- a/frontend/src/components/widget/DeWidget/DeTabs.vue
+++ b/frontend/src/components/widget/DeWidget/DeTabs.vue
@@ -56,7 +56,7 @@