From b83fd207317fca333c9dcfcc174f1bc9371b6de0 Mon Sep 17 00:00:00 2001
From: wangxiang <1827945911@qq.com>
Date: Sat, 2 Sep 2023 09:22:23 +0800
Subject: [PATCH] =?UTF-8?q?chore:=20=E6=8F=90=E4=BE=9B=E6=9C=AA=E7=BB=91?=
=?UTF-8?q?=E5=AE=9A=E7=94=A8=E6=88=B7=E6=94=AF=E6=8C=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/core/constant/CommonConstants.java | 5 ---
.../kicc/common/core/enums/ExceptionEnum.java | 35 +++++++++++++++++++
.../KiccAuth2ExceptionSerializer.java | 5 ++-
.../UnConfiguredUserDataException.java | 35 +++++++++++++++++++
.../KiccLocalResourceServerTokenServices.java | 6 ++--
.../exp/ResourceAuthExceptionEntryPoint.java | 9 ++++-
.../KiccWebResponseExceptionTranslator.java | 5 +++
.../service/KiccUserDetailsService.java | 4 ++-
.../controller/VisualDbController.java | 1 -
9 files changed, 91 insertions(+), 14 deletions(-)
create mode 100644 kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/ExceptionEnum.java
create mode 100644 kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/UnConfiguredUserDataException.java
diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/CommonConstants.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/CommonConstants.java
index 97e4ba27..a913f037 100644
--- a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/CommonConstants.java
+++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/CommonConstants.java
@@ -40,11 +40,6 @@ public interface CommonConstants {
*/
String BACK_END_PROJECT = "kicc";
- /**
- * 失败标记
- */
- Integer FAIL = 1;
-
/**
* 当前页
*/
diff --git a/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/ExceptionEnum.java b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/ExceptionEnum.java
new file mode 100644
index 00000000..48f31dfc
--- /dev/null
+++ b/kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/enums/ExceptionEnum.java
@@ -0,0 +1,35 @@
+package com.cloud.kicc.common.core.enums;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ *
+ * API错误页面响应状态枚举
+ *
+ *
+ * @Author: wangxiang4
+ * @Since: 2023/8/16
+ */
+@Getter
+@RequiredArgsConstructor
+public enum ExceptionEnum {
+
+ UNAUTHORIZED_ACCESS(401, "禁止访问"),
+ PAGE_NOT_ACCESS(403, "页面无法访问"),
+ PAGE_NOT_FOUND(404, "网页未找到"),
+ ERROR(500, "错误"),
+ NET_WORK_ERROR(10000, "前端Js错误"),
+ PAGE_NOT_DATA(10100, "无数据页面");
+
+ /**
+ * 状态
+ */
+ private final int value;
+
+ /**
+ * 描述
+ */
+ private final String description;
+
+}
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2ExceptionSerializer.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2ExceptionSerializer.java
index 94608939..e4746d1b 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2ExceptionSerializer.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exception/KiccAuth2ExceptionSerializer.java
@@ -1,7 +1,6 @@
package com.cloud.kicc.common.security.exception;
-import com.cloud.kicc.common.core.constant.CommonConstants;
-import com.cloud.kicc.common.security.exception.KiccAuth2Exception;
+import com.cloud.kicc.common.core.enums.ExceptionEnum;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
@@ -25,7 +24,7 @@ public class KiccAuth2ExceptionSerializer extends StdSerializer
+ * 未配置用户数据
+ *
+ *
+ * @Author: wangxiang4
+ * @Since: 2023/9/2
+ */
+@JsonSerialize(using = KiccAuth2ExceptionSerializer.class)
+public class UnConfiguredUserDataException extends KiccAuth2Exception {
+
+ public UnConfiguredUserDataException(String msg) {
+ super(msg);
+ }
+
+ public UnConfiguredUserDataException(String msg, Throwable t) {
+ super(msg, t);
+ }
+
+ @Override
+ public String getOAuth2ErrorCode() {
+ return "un_configured_user_data";
+ }
+
+ @Override
+ public int getHttpErrorCode() {
+ return HttpStatus.NETWORK_AUTHENTICATION_REQUIRED.value();
+ }
+
+}
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java
index 187ab539..01b6e590 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/KiccLocalResourceServerTokenServices.java
@@ -7,7 +7,7 @@ import com.cloud.kicc.common.core.enums.CasSystemEnum;
import com.cloud.kicc.common.core.jackson.KiccJavaTimeModule;
import com.cloud.kicc.common.data.entity.CasUser;
import com.cloud.kicc.common.data.entity.KiccUser;
-import com.cloud.kicc.common.security.exception.SecurityCheckedException;
+import com.cloud.kicc.common.security.exception.UnConfiguredUserDataException;
import com.cloud.kicc.common.security.override.jackson2.SimpleGrantedAuthorityMixin;
import com.cloud.kicc.system.api.feign.RemoteUserService;
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -64,7 +64,7 @@ public class KiccLocalResourceServerTokenServices implements ResourceServerToken
if (casUser.getExPrincipals().get(CasSystemEnum.KICC) == null) {
R result = remoteUserService.selectByCasUserId(casUser.getId());
if (result.getCode() != R.SUCCESS) {
- throw new SecurityCheckedException("找不到系统用户请联系您的系统管理员进行配置!");
+ throw new UnConfiguredUserDataException("System user not found Contact your system administrator for configuration!", null);
}
KiccUser user = result.getData();
@@ -90,7 +90,7 @@ public class KiccLocalResourceServerTokenServices implements ResourceServerToken
// 覆盖casUser核心authorities
String str = casUser.getExPrincipals().get(CasSystemEnum.KICC);
- if (!JSONUtil.isJson(str)) throw new RuntimeException("exPrincipals不是json字符串!");
+ if (!JSONUtil.isJson(str)) throw new UnConfiguredUserDataException("ExPrincipals not json strings!");
KiccUser kiccUser = new ObjectMapper()
.registerModule(new KiccJavaTimeModule())
.addMixIn(SimpleGrantedAuthority.class, SimpleGrantedAuthorityMixin.class)
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java
index 900aa634..24286377 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/exp/ResourceAuthExceptionEntryPoint.java
@@ -3,6 +3,8 @@ package com.cloud.kicc.common.security.exp;
import cn.hutool.http.HttpStatus;
import com.cloud.kicc.common.core.constant.CommonConstants;
import com.cloud.kicc.common.core.api.R;
+import com.cloud.kicc.common.core.enums.ExceptionEnum;
+import com.cloud.kicc.common.security.exception.UnConfiguredUserDataException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
@@ -35,7 +37,7 @@ public class ResourceAuthExceptionEntryPoint implements AuthenticationEntryPoint
response.setCharacterEncoding(CommonConstants.UTF8);
response.setContentType(CommonConstants.CONTENT_TYPE);
R result = new R<>();
- result.setCode(CommonConstants.FAIL);
+ result.setCode(ExceptionEnum.UNAUTHORIZED_ACCESS.getValue());
response.setStatus(HttpStatus.HTTP_UNAUTHORIZED);
if (authException != null) {
result.setMsg("error");
@@ -46,6 +48,11 @@ public class ResourceAuthExceptionEntryPoint implements AuthenticationEntryPoint
if (authException instanceof InsufficientAuthenticationException) {
response.setStatus(org.springframework.http.HttpStatus.FAILED_DEPENDENCY.value());
result.setMsg("token expire");
+
+ // 未配置用户数据
+ if (authException.getCause() instanceof UnConfiguredUserDataException) {
+ result.setCode(ExceptionEnum.PAGE_NOT_DATA.getValue());
+ }
}
PrintWriter printWriter = response.getWriter();
printWriter.append(objectMapper.writeValueAsString(result));
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java
index 89146684..f99ce039 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/override/KiccWebResponseExceptionTranslator.java
@@ -65,6 +65,11 @@ public class KiccWebResponseExceptionTranslator implements WebResponseExceptionT
return handleOAuth2Exception(new SecurityCheckedException(ase.getMessage(), ase));
}
+ ase = (UnConfiguredUserDataException) throwableAnalyzer.getFirstThrowableOfType(UnConfiguredUserDataException.class, causeChain);
+ if (ase != null) {
+ return handleOAuth2Exception(new UnConfiguredUserDataException(ase.getMessage(), ase));
+ }
+
ase = (OAuth2Exception) throwableAnalyzer.getFirstThrowableOfType(OAuth2Exception.class, causeChain);
if (ase != null) {
return handleOAuth2Exception((OAuth2Exception) ase);
diff --git a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
index 781d1a6a..ea73c775 100644
--- a/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
+++ b/kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
@@ -78,7 +78,9 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
user.getUpdateById(),
user.getUpdateByName(),
user.getUpdateTime(),
- user.getRemarks()
+ user.getRemarks(),
+ null,
+ user.getTenantId()
);
}
diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java
index 2bffc745..d1ef7762 100644
--- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java
+++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java
@@ -27,7 +27,6 @@ import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.IOException;
-import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.LinkedHashMap;