From 1a1ae4dbcb9d2212d29e047d84ab34319ccfd41c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Mon, 13 Jul 2020 17:15:27 +0800 Subject: [PATCH] =?UTF-8?q?https://gitee.com/log4j/pig/issues/I1M2TJ=20=20?= =?UTF-8?q?sentinel=20=E5=BC=82=E5=B8=B8=E9=99=8D=E7=BA=A7=E5=A4=B1?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/META-INF/spring.factories | 1 - pigx-common/pigx-common-sentinel/pom.xml | 5 +++++ .../handle/GlobalBizExceptionHandler.java} | 16 +++++++++++++--- .../src/main/resources/META-INF/spring.factories | 3 ++- .../service/impl/GeneratorServiceImpl.java | 1 - 5 files changed, 20 insertions(+), 6 deletions(-) rename pigx-common/{pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/GlobalExceptionHandlerResolver.java => pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java} (86%) diff --git a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories index 367df029e..685830eee 100644 --- a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories +++ b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories @@ -1,5 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.pig4cloud.pigx.common.security.component.GlobalExceptionHandlerResolver,\ com.pig4cloud.pigx.common.security.component.PigxTokenEnhancer,\ com.pig4cloud.pigx.common.security.component.PigxSecurityInnerAspect,\ com.pig4cloud.pigx.common.security.listener.AuthenticationFailureEventListener,\ diff --git a/pigx-common/pigx-common-sentinel/pom.xml b/pigx-common/pigx-common-sentinel/pom.xml index ddae1da82..7a352506c 100755 --- a/pigx-common/pigx-common-sentinel/pom.xml +++ b/pigx-common/pigx-common-sentinel/pom.xml @@ -26,5 +26,10 @@ org.springframework.cloud spring-cloud-starter-openfeign + + + org.springframework.security + spring-security-core + diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/GlobalExceptionHandlerResolver.java b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java similarity index 86% rename from pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/GlobalExceptionHandlerResolver.java rename to pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java index 0077ae585..bb789b4a4 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/component/GlobalExceptionHandlerResolver.java +++ b/pigx-common/pigx-common-sentinel/src/main/java/com/pig4cloud/pigx/common/sentinel/handle/GlobalBizExceptionHandler.java @@ -15,10 +15,12 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.common.security.component; +package com.pig4cloud.pigx.common.sentinel.handle; +import com.alibaba.csp.sentinel.Tracer; import com.pig4cloud.pigx.common.core.util.R; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.http.HttpStatus; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.SpringSecurityMessageSource; @@ -32,12 +34,17 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; import java.util.List; /** + *

+ * 全局异常处理器结合sentinel 全局异常处理器不能作用在 oauth server https://gitee.com/log4j/pig/issues/I1M2TJ + *

+ * * @author lengleng - * @date 2018/8/30 全局异常处理器 + * @date 2020-06-29 */ @Slf4j @RestControllerAdvice -public class GlobalExceptionHandlerResolver { +@ConditionalOnExpression("!'${security.oauth2.client.clientId}'.isEmpty()") +public class GlobalBizExceptionHandler { /** * 全局异常. @@ -48,6 +55,9 @@ public class GlobalExceptionHandlerResolver { @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public R handleGlobalException(Exception e) { log.error("全局异常信息 ex={}", e.getMessage(), e); + + // 业务异常交由 sentinel 记录 + Tracer.trace(e); return R.failed(e.getLocalizedMessage()); } diff --git a/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring.factories index 550a79f02..b3380d443 100755 --- a/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring.factories +++ b/pigx-common/pigx-common-sentinel/src/main/resources/META-INF/spring.factories @@ -1,2 +1,3 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.pig4cloud.pigx.common.sentinel.SentinelAutoConfiguration + com.pig4cloud.pigx.common.sentinel.SentinelAutoConfiguration,\ + com.pig4cloud.pigx.common.sentinel.handle.GlobalBizExceptionHandler diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java index f98c442c5..95867c348 100755 --- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java +++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/service/impl/GeneratorServiceImpl.java @@ -106,7 +106,6 @@ public class GeneratorServiceImpl implements GeneratorService { List formConfList = genFormConfMapper.selectList(Wrappers.lambdaQuery() .eq(GenFormConf::getTableName, genConfig.getTableName()).orderByDesc(GenFormConf::getCreateTime)); - DynamicDataSourceContextHolder.push(genConfig.getDsName()); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(outputStream);