From 2976352723c6f022f44dabce8355b1c04846f68e Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 24 Dec 2022 16:06:28 +0800 Subject: [PATCH 001/105] =?UTF-8?q?:arrow=5Fup:=20=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=20springboot=202.7.7=20doc=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=86=E6=94=AF=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 ++++++- pom.xml | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 412e642cb..b5b42d9d7 100644 --- a/README.md +++ b/README.md @@ -34,11 +34,16 @@ ## 快速开始 +### 分支说明 + +- master: java8 + springboot 2.7 + springcloud 2021 +- jdk17: java17 springboot 3.0 + springcloud 2022 + ### 核心依赖 | 依赖 | 版本 | | ---------------------- |------------| -| Spring Boot | 2.7.6 | +| Spring Boot | 2.7.7 | | Spring Cloud | 2021.0.5 | | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.0 | diff --git a/pom.xml b/pom.xml index 2ed373227..7f0751e59 100755 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.6 + 2.7.7 2021.0.5 2021.0.4.0 UTF-8 -- Gitee From 65a998bba6ea3cff43297477248959115bd9c2a3 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Mon, 26 Dec 2022 17:37:23 +0800 Subject: [PATCH 002/105] =?UTF-8?q?:sparkles:=20Introducing=20new=20featur?= =?UTF-8?q?es.=20=E8=A6=86=E7=9B=96nacos=E5=AE=98=E6=96=B9=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E8=AE=B0=E5=BD=95=E6=9F=A5=E8=AF=A2=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 数据库插件是oracle时 查询出空数据对比错误 --- .../nacos/config/service/HistoryService.java | 85 +++++++++++++++++++ .../nacos/config/service/package-info.java | 4 + 2 files changed, 89 insertions(+) create mode 100644 pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java create mode 100644 pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java b/pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java new file mode 100644 index 000000000..3a107c6af --- /dev/null +++ b/pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java @@ -0,0 +1,85 @@ +package com.alibaba.nacos.config.service; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.nacos.common.utils.Pair; +import com.alibaba.nacos.config.server.model.ConfigHistoryInfo; +import com.alibaba.nacos.config.server.model.ConfigInfoWrapper; +import com.alibaba.nacos.config.server.model.Page; +import com.alibaba.nacos.config.server.service.repository.ConfigInfoPersistService; +import com.alibaba.nacos.config.server.service.repository.HistoryConfigInfoPersistService; +import com.alibaba.nacos.plugin.auth.exception.AccessException; +import com.alibaba.nacos.plugin.encryption.handler.EncryptionHandler; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; + +@Service +public class HistoryService { + + private final HistoryConfigInfoPersistService historyConfigInfoPersistService; + + private final ConfigInfoPersistService configInfoPersistService; + + public HistoryService(HistoryConfigInfoPersistService historyConfigInfoPersistService, + ConfigInfoPersistService configInfoPersistService) { + this.historyConfigInfoPersistService = historyConfigInfoPersistService; + this.configInfoPersistService = configInfoPersistService; + } + + public Page listConfigHistory(String dataId, String group, String namespaceId, Integer pageNo, + Integer pageSize) { + return this.historyConfigInfoPersistService.findConfigHistory(dataId, group, namespaceId, pageNo, pageSize); + } + + public ConfigHistoryInfo getConfigHistoryInfo(String dataId, String group, String namespaceId, Long nid) + throws AccessException { + ConfigHistoryInfo configHistoryInfo = this.historyConfigInfoPersistService.detailConfigHistory(nid); + if (Objects.isNull(configHistoryInfo)) { + return null; + } + else { + this.checkHistoryInfoPermission(configHistoryInfo, dataId, group, namespaceId); + String encryptedDataKey = configHistoryInfo.getEncryptedDataKey(); + Pair pair = EncryptionHandler.decryptHandler(dataId, encryptedDataKey, + configHistoryInfo.getContent()); + configHistoryInfo.setContent((String) pair.getSecond()); + return configHistoryInfo; + } + } + + public ConfigHistoryInfo getPreviousConfigHistoryInfo(String dataId, String group, String namespaceId, Long id) + throws AccessException { + ConfigHistoryInfo configHistoryInfo = this.historyConfigInfoPersistService.detailPreviousConfigHistory(id); + if (Objects.isNull(configHistoryInfo)) { + return null; + } + else { + this.checkHistoryInfoPermission(configHistoryInfo, dataId, group, namespaceId); + return configHistoryInfo; + } + } + + public List getConfigListByNamespace(String namespaceId) { + return this.configInfoPersistService.queryConfigInfoByNamespace(namespaceId); + } + + /** + * 覆盖原有的校验方式,oracle 数据库没有空 字符串 只有 null + * @param configHistoryInfo + * @param dataId + * @param group + * @param namespaceId + * @throws AccessException + */ + private void checkHistoryInfoPermission(ConfigHistoryInfo configHistoryInfo, String dataId, String group, + String namespaceId) throws AccessException { + if (!Objects.equals(configHistoryInfo.getDataId(), dataId) + || !Objects.equals(configHistoryInfo.getGroup(), group) + || (!StrUtil.isEmpty(configHistoryInfo.getTenant()) + && !Objects.equals(configHistoryInfo.getTenant(), namespaceId))) { + throw new AccessException("Please check dataId, group or namespaceId."); + } + } + +} diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java b/pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java new file mode 100644 index 000000000..53d83d084 --- /dev/null +++ b/pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java @@ -0,0 +1,4 @@ +/** + * 处理再oracle数据库下空置的判断 + */ +package com.alibaba.nacos.config.service; -- Gitee From 7d70766b17c5962810aa24977398f51bf4e7b5fb Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Tue, 27 Dec 2022 09:59:52 +0800 Subject: [PATCH 003/105] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E5=85=B3?= =?UTF-8?q?=E9=97=ADdocker-compose=20=E4=B8=AD=E7=9A=84mysql=20=E5=92=8Cre?= =?UTF-8?q?dis=20=E7=9A=84=E7=AB=AF=E5=8F=A3=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E5=92=8C=E5=85=B6=E4=BB=96=E9=A1=B9=E7=9B=AE=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index be4193263..3380751d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,13 +9,9 @@ services: restart: always container_name: pig-mysql image: pig-mysql - ports: - - 3306:3306 pig-redis: image: redis:7.0.0 - ports: - - 6379:6379 restart: always container_name: pig-redis hostname: pig-redis -- Gitee From 5e138480feb43ac25bfe55bc0a25078821eb2575 Mon Sep 17 00:00:00 2001 From: TwelveT <2471835953@qq.com> Date: Wed, 28 Dec 2022 10:59:57 +0800 Subject: [PATCH 004/105] =?UTF-8?q?JavaFormat=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f0751e59..a3e82cb97 100755 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ username password 4.9.9 - 0.0.34 + 0.0.35 -- Gitee From 5e1802192cd02d46dcb4901ae24b508f8a80e698 Mon Sep 17 00:00:00 2001 From: suntongwen Date: Wed, 28 Dec 2022 11:19:25 +0800 Subject: [PATCH 005/105] =?UTF-8?q?=E9=81=BF=E5=85=8D=20race=20condition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/PigAuthenticationSuccessEventHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java index 162babd21..003c085f9 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java @@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.server.ServletServerHttpResponse; import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.oauth2.core.OAuth2AccessToken; import org.springframework.security.oauth2.core.OAuth2RefreshToken; @@ -71,7 +72,10 @@ public class PigAuthenticationSuccessEventHandler implements AuthenticationSucce // 发送异步日志事件 PigUser userInfo = (PigUser) map.get(SecurityConstants.DETAILS_USER); log.info("用户:{} 登录成功", userInfo.getName()); - SecurityContextHolder.getContext().setAuthentication(accessTokenAuthentication); + //避免 race condition + SecurityContext context = SecurityContextHolder.createEmptyContext(); + context.setAuthentication(accessTokenAuthentication); + SecurityContextHolder.setContext(context); SysLog logVo = SysLogUtils.getSysLog(); logVo.setTitle("登录成功"); String startTimeStr = request.getHeader(CommonConstants.REQUEST_START_TIME); -- Gitee From 5b4dfcdcd55627f1264eae5bff5a896223355cb0 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Wed, 28 Dec 2022 20:26:24 +0800 Subject: [PATCH 006/105] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dnacos=20=E8=A6=86=E7=9B=96=20HistoryService=20?= =?UTF-8?q?=E5=8C=85=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nacos/config/{ => server}/service/HistoryService.java | 5 ++++- .../nacos/config/{ => server}/service/package-info.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) rename pig-register/src/main/java/com/alibaba/nacos/config/{ => server}/service/HistoryService.java (97%) rename pig-register/src/main/java/com/alibaba/nacos/config/{ => server}/service/package-info.java (52%) diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java similarity index 97% rename from pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java rename to pig-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java index 3a107c6af..72a05665d 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/config/service/HistoryService.java +++ b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java @@ -1,4 +1,4 @@ -package com.alibaba.nacos.config.service; +package com.alibaba.nacos.config.server.service; import cn.hutool.core.util.StrUtil; import com.alibaba.nacos.common.utils.Pair; @@ -14,6 +14,9 @@ import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; +/** + * @author aeizzz + */ @Service public class HistoryService { diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java similarity index 52% rename from pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java rename to pig-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java index 53d83d084..d3c747a1d 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/config/service/package-info.java +++ b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java @@ -1,4 +1,4 @@ /** * 处理再oracle数据库下空置的判断 */ -package com.alibaba.nacos.config.service; +package com.alibaba.nacos.config.server.service; -- Gitee From 1695ce3e84adde6d99e9addfec3de44806e75b57 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Wed, 28 Dec 2022 20:26:45 +0800 Subject: [PATCH 007/105] :sparkles: Introducing new features. up mybatis-plus 3.5.3 --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index b82dd87b9..5d5a07f1a 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -25,7 +25,7 @@ 1.2.83 1.6.9 2.2.0 - 3.5.2 + 3.5.3 8.0.31 1.5.2 1.2.6 -- Gitee From 29efedb3e696d219100164e65c87b559470019d5 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Wed, 28 Dec 2022 20:44:58 +0800 Subject: [PATCH 008/105] :art: Improving structure / format of the code. --- .../support/handler/PigAuthenticationSuccessEventHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java index 003c085f9..3466b9ff6 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java @@ -72,7 +72,7 @@ public class PigAuthenticationSuccessEventHandler implements AuthenticationSucce // 发送异步日志事件 PigUser userInfo = (PigUser) map.get(SecurityConstants.DETAILS_USER); log.info("用户:{} 登录成功", userInfo.getName()); - //避免 race condition + // 避免 race condition SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(accessTokenAuthentication); SecurityContextHolder.setContext(context); -- Gitee From 3eaba7501ce7c4d8efdb808a0af1b80d3067d061 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 29 Dec 2022 14:18:31 +0800 Subject: [PATCH 009/105] =?UTF-8?q?:arrow=5Fup:=20=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=20springboot=202.7.7=20doc=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=86=E6=94=AF=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index b5b42d9d7..3cec92186 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,12 @@ ![](https://minio.pigx.vip/oss/1648184189.png) - - ## 快速开始 ### 分支说明 - master: java8 + springboot 2.7 + springcloud 2021 -- jdk17: java17 springboot 3.0 + springcloud 2022 +- jdk17: java17 + springboot 3.0 + springcloud 2022 ### 核心依赖 -- Gitee From ea1acee88aa11a77969180e83e84ea55baeb058f Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Fri, 30 Dec 2022 09:00:47 +0800 Subject: [PATCH 010/105] :bookmark: Releasing / Version tags. 3.6.5 --- pig-auth/pom.xml | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- pig-common/pig-common-core/pom.xml | 2 +- pig-common/pig-common-datasource/pom.xml | 2 +- pig-common/pig-common-feign/pom.xml | 2 +- pig-common/pig-common-job/pom.xml | 2 +- pig-common/pig-common-log/pom.xml | 2 +- pig-common/pig-common-mybatis/pom.xml | 2 +- pig-common/pig-common-seata/pom.xml | 2 +- pig-common/pig-common-security/pom.xml | 2 +- pig-common/pig-common-swagger/pom.xml | 2 +- pig-common/pig-common-xss/pom.xml | 2 +- pig-common/pom.xml | 2 +- pig-gateway/pom.xml | 2 +- pig-register/pom.xml | 2 +- pig-upms/pig-upms-api/pom.xml | 2 +- pig-upms/pig-upms-biz/pom.xml | 2 +- pig-upms/pom.xml | 2 +- pig-visual/pig-codegen/pom.xml | 2 +- pig-visual/pig-monitor/pom.xml | 2 +- pig-visual/pig-sentinel-dashboard/pom.xml | 2 +- pig-visual/pig-xxl-job-admin/pom.xml | 2 +- pig-visual/pom.xml | 2 +- pom.xml | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pig-auth/pom.xml b/pig-auth/pom.xml index 1e5e2da47..bb9dc812c 100755 --- a/pig-auth/pom.xml +++ b/pig-auth/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-auth diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 5d5a07f1a..9ebf91013 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common-bom - 3.6.4 + 3.6.5 pom pig-common-bom diff --git a/pig-common/pig-common-core/pom.xml b/pig-common/pig-common-core/pom.xml index d8457f55e..16b84c5ed 100755 --- a/pig-common/pig-common-core/pom.xml +++ b/pig-common/pig-common-core/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-core diff --git a/pig-common/pig-common-datasource/pom.xml b/pig-common/pig-common-datasource/pom.xml index 0af20a6ea..ee227c821 100644 --- a/pig-common/pig-common-datasource/pom.xml +++ b/pig-common/pig-common-datasource/pom.xml @@ -21,7 +21,7 @@ pig-common com.pig4cloud - 3.6.4 + 3.6.5 4.0.0 diff --git a/pig-common/pig-common-feign/pom.xml b/pig-common/pig-common-feign/pom.xml index 26451d25c..4026a01ac 100755 --- a/pig-common/pig-common-feign/pom.xml +++ b/pig-common/pig-common-feign/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 4.0.0 diff --git a/pig-common/pig-common-job/pom.xml b/pig-common/pig-common-job/pom.xml index 1a12427d4..0ab97cbff 100755 --- a/pig-common/pig-common-job/pom.xml +++ b/pig-common/pig-common-job/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-job diff --git a/pig-common/pig-common-log/pom.xml b/pig-common/pig-common-log/pom.xml index 83acf4c35..aa1c20467 100755 --- a/pig-common/pig-common-log/pom.xml +++ b/pig-common/pig-common-log/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-log diff --git a/pig-common/pig-common-mybatis/pom.xml b/pig-common/pig-common-mybatis/pom.xml index 84c3a56f9..dd7d6b34b 100755 --- a/pig-common/pig-common-mybatis/pom.xml +++ b/pig-common/pig-common-mybatis/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-mybatis diff --git a/pig-common/pig-common-seata/pom.xml b/pig-common/pig-common-seata/pom.xml index 6b80cb4ae..09a459768 100755 --- a/pig-common/pig-common-seata/pom.xml +++ b/pig-common/pig-common-seata/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-seata diff --git a/pig-common/pig-common-security/pom.xml b/pig-common/pig-common-security/pom.xml index 469aa634a..ee8f4faa1 100755 --- a/pig-common/pig-common-security/pom.xml +++ b/pig-common/pig-common-security/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-security diff --git a/pig-common/pig-common-swagger/pom.xml b/pig-common/pig-common-swagger/pom.xml index 854dad198..f585a4c36 100644 --- a/pig-common/pig-common-swagger/pom.xml +++ b/pig-common/pig-common-swagger/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-swagger diff --git a/pig-common/pig-common-xss/pom.xml b/pig-common/pig-common-xss/pom.xml index 495cfe2b0..387742b96 100755 --- a/pig-common/pig-common-xss/pom.xml +++ b/pig-common/pig-common-xss/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common - 3.6.4 + 3.6.5 pig-common-xss diff --git a/pig-common/pom.xml b/pig-common/pom.xml index 8c24c931c..60616c984 100755 --- a/pig-common/pom.xml +++ b/pig-common/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-common diff --git a/pig-gateway/pom.xml b/pig-gateway/pom.xml index 7f625d7a1..6ce35adfc 100755 --- a/pig-gateway/pom.xml +++ b/pig-gateway/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-gateway diff --git a/pig-register/pom.xml b/pig-register/pom.xml index d5309be05..45e0284e9 100755 --- a/pig-register/pom.xml +++ b/pig-register/pom.xml @@ -18,7 +18,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-register diff --git a/pig-upms/pig-upms-api/pom.xml b/pig-upms/pig-upms-api/pom.xml index 03c66e106..68520c51a 100755 --- a/pig-upms/pig-upms-api/pom.xml +++ b/pig-upms/pig-upms-api/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.4 + 3.6.5 pig-upms-api diff --git a/pig-upms/pig-upms-biz/pom.xml b/pig-upms/pig-upms-biz/pom.xml index a3652ff2b..2aac59cc3 100644 --- a/pig-upms/pig-upms-biz/pom.xml +++ b/pig-upms/pig-upms-biz/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.4 + 3.6.5 pig-upms-biz diff --git a/pig-upms/pom.xml b/pig-upms/pom.xml index a5994580b..1b9cd02eb 100755 --- a/pig-upms/pom.xml +++ b/pig-upms/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-upms diff --git a/pig-visual/pig-codegen/pom.xml b/pig-visual/pig-codegen/pom.xml index d5cadd485..aa6539412 100755 --- a/pig-visual/pig-codegen/pom.xml +++ b/pig-visual/pig-codegen/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig-visual - 3.6.4 + 3.6.5 pig-codegen diff --git a/pig-visual/pig-monitor/pom.xml b/pig-visual/pig-monitor/pom.xml index e643f3cf1..4145a511d 100755 --- a/pig-visual/pig-monitor/pom.xml +++ b/pig-visual/pig-monitor/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-visual - 3.6.4 + 3.6.5 pig-monitor diff --git a/pig-visual/pig-sentinel-dashboard/pom.xml b/pig-visual/pig-sentinel-dashboard/pom.xml index 86f4321d0..0840d1616 100755 --- a/pig-visual/pig-sentinel-dashboard/pom.xml +++ b/pig-visual/pig-sentinel-dashboard/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-visual - 3.6.4 + 3.6.5 pig-sentinel-dashboard diff --git a/pig-visual/pig-xxl-job-admin/pom.xml b/pig-visual/pig-xxl-job-admin/pom.xml index 098b2cdaa..b3553c3e0 100644 --- a/pig-visual/pig-xxl-job-admin/pom.xml +++ b/pig-visual/pig-xxl-job-admin/pom.xml @@ -4,7 +4,7 @@ com.pig4cloud pig-visual - 3.6.4 + 3.6.5 pig-xxl-job-admin diff --git a/pig-visual/pom.xml b/pig-visual/pom.xml index 7366fa283..92ae2b616 100755 --- a/pig-visual/pom.xml +++ b/pig-visual/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.4 + 3.6.5 pig-visual diff --git a/pom.xml b/pom.xml index a3e82cb97..c21f83b41 100755 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig ${project.artifactId} - 3.6.4 + 3.6.5 pom https://www.pig4cloud.com -- Gitee From efba30ac55923ad64a6facfb9bbd00c43fbdfdfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=91=A3?= <861571118@qq.com> Date: Mon, 2 Jan 2023 11:06:15 +0000 Subject: [PATCH 011/105] :bug: Fixing a bug.ObjectUtil.isEmpty . MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小董 <861571118@qq.com> --- .../main/java/com/pig4cloud/pig/common/core/util/RetOps.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RetOps.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RetOps.java index ea59db5ac..bc48065ac 100644 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RetOps.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RetOps.java @@ -210,7 +210,7 @@ public class RetOps { * @throws Ex 断言失败时抛出 */ public RetOps assertDataNotEmpty(Function, ? extends Ex> func) throws Ex { - if (ObjectUtil.isNotEmpty(original.getData())) { + if (ObjectUtil.isEmpty(original.getData())) { throw func.apply(original); } return this; -- Gitee From 6757062d5624326a5bc23e0cde57346e5f9f38cf Mon Sep 17 00:00:00 2001 From: aeizzz Date: Tue, 3 Jan 2023 09:14:57 +0800 Subject: [PATCH 012/105] :sparkles: Introducing new features. up mybatis-plus 3.5.3.1 --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3cec92186..beaca953d 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ | Spring Cloud | 2021.0.5 | | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.0 | -| Mybatis Plus | 3.5.2 | +| Mybatis Plus | 3.5.3.1 | | hutool | 5.8.10 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 9ebf91013..b881b89f3 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -25,7 +25,7 @@ 1.2.83 1.6.9 2.2.0 - 3.5.3 + 3.5.3.1 8.0.31 1.5.2 1.2.6 -- Gitee From c79a2588e42ee56c549985a7bc8662647c0211e8 Mon Sep 17 00:00:00 2001 From: lbw Date: Wed, 4 Jan 2023 12:55:31 +0800 Subject: [PATCH 013/105] =?UTF-8?q?:arrow=5Fup:=20=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=20springboot=203.0.1=20doc=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=88=86=E6=94=AF=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3cec92186..eab12a5ad 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,13 @@ - master: java8 + springboot 2.7 + springcloud 2021 - jdk17: java17 + springboot 3.0 + springcloud 2022 +| 分支 | 说明 | +|-----------------|------------------------------------------------------------------| +| master | java8 + springboot 2.7 + springcloud 2021 | +| sca-springboot3 | java17 + springboot 3.0 + springcloud 2022 | +| sct-springboot3 | java17 + springboot 3.0 + springcloud 2022 | + + ### 核心依赖 | 依赖 | 版本 | @@ -45,7 +52,7 @@ | Spring Cloud | 2021.0.5 | | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.0 | -| Mybatis Plus | 3.5.2 | +| Mybatis Plus | 3.5.3.1 | | hutool | 5.8.10 | ### 模块说明 -- Gitee From e45423c4ca1d9228cbd9be5c20fceb8d0b3be679 Mon Sep 17 00:00:00 2001 From: twelvet <2471835953@qq.com> Date: Sat, 7 Jan 2023 09:38:57 +0000 Subject: [PATCH 014/105] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=8A=A0=E5=BF=AB=E6=9E=84=E5=BB=BA=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: twelvet <2471835953@qq.com> --- .github/workflows/maven.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index b87d69b9a..082741b94 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -22,6 +22,7 @@ jobs: with: java-version: ${{ matrix.java-version }} distribution: 'zulu' + cache: maven - name: mvn spring-javaformat:validate run: mvn spring-javaformat:validate -- Gitee From 56751368d41be1d8f5ef5b52798d434e1405e9dc Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Sat, 14 Jan 2023 19:01:58 +0800 Subject: [PATCH 015/105] =?UTF-8?q?:sparkles:=20close=20#I6AIC7=20pigx-reg?= =?UTF-8?q?ister=E6=94=AF=E6=8C=81=E5=BC=80=E5=90=AF=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-auth/src/main/resources/application.yml | 2 ++ pig-gateway/src/main/resources/application.yml | 2 ++ .../java/com/alibaba/nacos/PigNacosApplication.java | 2 +- .../java/com/alibaba/nacos/config/ConsoleConfig.java | 10 +++++++++- pig-register/src/main/resources/application.yml | 9 +++++++-- .../pig-upms-biz/src/main/resources/application.yml | 2 ++ .../pig-codegen/src/main/resources/application.yml | 2 ++ .../pig-monitor/src/main/resources/application.yml | 2 ++ .../src/main/resources/application.yml | 2 ++ pom.xml | 2 ++ 10 files changed, 31 insertions(+), 4 deletions(-) diff --git a/pig-auth/src/main/resources/application.yml b/pig-auth/src/main/resources/application.yml index 3690b33d3..8c60e73e6 100755 --- a/pig-auth/src/main/resources/application.yml +++ b/pig-auth/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} config: diff --git a/pig-gateway/src/main/resources/application.yml b/pig-gateway/src/main/resources/application.yml index 4e9e8bdf6..c694dc1ba 100755 --- a/pig-gateway/src/main/resources/application.yml +++ b/pig-gateway/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} config: diff --git a/pig-register/src/main/java/com/alibaba/nacos/PigNacosApplication.java b/pig-register/src/main/java/com/alibaba/nacos/PigNacosApplication.java index 74397f974..42abdf46c 100755 --- a/pig-register/src/main/java/com/alibaba/nacos/PigNacosApplication.java +++ b/pig-register/src/main/java/com/alibaba/nacos/PigNacosApplication.java @@ -43,7 +43,7 @@ public class PigNacosApplication { */ private static boolean initEnv() { System.setProperty(ConfigConstants.STANDALONE_MODE, "true"); - System.setProperty(ConfigConstants.AUTH_ENABLED, "false"); + System.setProperty(ConfigConstants.AUTH_ENABLED, "true"); System.setProperty(ConfigConstants.LOG_BASEDIR, "logs"); System.setProperty(ConfigConstants.LOG_ENABLED, "false"); return true; diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java b/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java index 7a3ec617d..e7869b0f1 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java +++ b/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java @@ -16,6 +16,7 @@ package com.alibaba.nacos.config; +import com.alibaba.nacos.console.filter.XssFilter; import com.alibaba.nacos.core.code.ControllerMethodsCache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; @@ -39,7 +40,7 @@ import java.time.ZoneId; */ @Component @EnableScheduling -@PropertySource("/application.properties") +@PropertySource("/application.yml") public class ConsoleConfig { @Autowired @@ -64,11 +65,18 @@ public class ConsoleConfig { config.addAllowedHeader("*"); config.setMaxAge(18000L); config.addAllowedMethod("*"); + config.addAllowedOriginPattern("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); return new CorsFilter(source); } + + @Bean + public XssFilter xssFilter() { + return new XssFilter(); + } + @Bean public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(ZoneId.systemDefault().toString()); diff --git a/pig-register/src/main/resources/application.yml b/pig-register/src/main/resources/application.yml index 60681dab9..461e91785 100755 --- a/pig-register/src/main/resources/application.yml +++ b/pig-register/src/main/resources/application.yml @@ -2,6 +2,8 @@ server: port: 8848 #如何修改 pig-register 启动端口 >: https://t.cn/A6XGvTdb tomcat: basedir: logs + error: + include-message: always db: num: 1 @@ -14,12 +16,15 @@ db: nacos: core: auth: + server: + identity: + key: serverIdentity + value: security plugin.nacos.token.secret.key: SecretKey012345678901234567890123456789012345678901234567890123456789 - enabled: false system.type: nacos security: ignore: - urls: /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** + urls: /actuator/**,/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** spring: datasource: diff --git a/pig-upms/pig-upms-biz/src/main/resources/application.yml b/pig-upms/pig-upms-biz/src/main/resources/application.yml index 7528a4fa8..d3da88fc3 100644 --- a/pig-upms/pig-upms-biz/src/main/resources/application.yml +++ b/pig-upms/pig-upms-biz/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} config: diff --git a/pig-visual/pig-codegen/src/main/resources/application.yml b/pig-visual/pig-codegen/src/main/resources/application.yml index 3a87b8488..a21122e31 100644 --- a/pig-visual/pig-codegen/src/main/resources/application.yml +++ b/pig-visual/pig-codegen/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} config: diff --git a/pig-visual/pig-monitor/src/main/resources/application.yml b/pig-visual/pig-monitor/src/main/resources/application.yml index 2ce78424e..928dcb819 100755 --- a/pig-visual/pig-monitor/src/main/resources/application.yml +++ b/pig-visual/pig-monitor/src/main/resources/application.yml @@ -6,6 +6,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} config: diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/application.yml b/pig-visual/pig-xxl-job-admin/src/main/resources/application.yml index 20eccf92a..1de056405 100644 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/application.yml +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/application.yml @@ -12,6 +12,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} metadata: diff --git a/pom.xml b/pom.xml index c21f83b41..5efa7fe1a 100755 --- a/pom.xml +++ b/pom.xml @@ -249,6 +249,8 @@ dev + nacos + nacos -- Gitee From 578e275b7db34d8508f76f84e3490e63652cc8f2 Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Sat, 14 Jan 2023 19:02:26 +0800 Subject: [PATCH 016/105] =?UTF-8?q?:sparkles:=20close=20#I6AIC7=20pigx-reg?= =?UTF-8?q?ister=E6=94=AF=E6=8C=81=E5=BC=80=E5=90=AF=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/alibaba/nacos/config/ConsoleConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java b/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java index e7869b0f1..b5dbe6e89 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java +++ b/pig-register/src/main/java/com/alibaba/nacos/config/ConsoleConfig.java @@ -71,7 +71,6 @@ public class ConsoleConfig { return new CorsFilter(source); } - @Bean public XssFilter xssFilter() { return new XssFilter(); -- Gitee From 596df42ae2a022ea6c8686a2fd914354606ed71d Mon Sep 17 00:00:00 2001 From: MuskLai Date: Mon, 16 Jan 2023 16:10:53 +0800 Subject: [PATCH 017/105] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98=20key=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java index 8934e8277..487ddb5f0 100755 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java @@ -67,7 +67,7 @@ public class SysDictServiceImpl extends ServiceImpl impl * @return */ @Override - @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.type") + @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.dictKey") public void updateDict(SysDict dict) { SysDict sysDict = this.getById(dict.getId()); // 系统内置 -- Gitee From 23826e0b44018a1d5e63d4f1078d5b499101a3dd Mon Sep 17 00:00:00 2001 From: MuskLai Date: Mon, 16 Jan 2023 16:25:26 +0800 Subject: [PATCH 018/105] =?UTF-8?q?Revert=20"fix:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98=20key?= =?UTF-8?q?=E5=85=A5=E5=8F=82=E9=94=99=E8=AF=AF"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f1f18a1f --- .../pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java index 487ddb5f0..8934e8277 100755 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java @@ -67,7 +67,7 @@ public class SysDictServiceImpl extends ServiceImpl impl * @return */ @Override - @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.dictKey") + @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.type") public void updateDict(SysDict dict) { SysDict sysDict = this.getById(dict.getId()); // 系统内置 -- Gitee From daff7b1a4aa46ecbdf69ad80e6fc5de2256b7d45 Mon Sep 17 00:00:00 2001 From: MuskLai Date: Mon, 16 Jan 2023 16:27:51 +0800 Subject: [PATCH 019/105] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98=20key=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java index 8934e8277..487ddb5f0 100755 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictServiceImpl.java @@ -67,7 +67,7 @@ public class SysDictServiceImpl extends ServiceImpl impl * @return */ @Override - @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.type") + @CacheEvict(value = CacheConstants.DICT_DETAILS, key = "#dict.dictKey") public void updateDict(SysDict dict) { SysDict sysDict = this.getById(dict.getId()); // 系统内置 -- Gitee From f48a8493343dc66f44c4545c6e562d27b4a0e0a2 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 21 Jan 2023 14:01:51 +0800 Subject: [PATCH 020/105] =?UTF-8?q?:recycle:=20=E9=87=8D=E6=9E=84=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E7=99=BB=E5=BD=95=E8=BF=87=E7=A8=8B=E7=9A=84=E7=89=B9?= =?UTF-8?q?=E6=AE=8A=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OAuth2ResourceOwnerBaseAuthenticationProvider.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java index f551f77b9..7df8b579b 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java @@ -3,6 +3,7 @@ package com.pig4cloud.pig.auth.support.base; import cn.hutool.extra.spring.SpringUtil; import com.pig4cloud.pig.common.security.util.OAuth2ErrorCodesExpand; import com.pig4cloud.pig.common.security.util.ScopeException; +import lombok.extern.slf4j.Slf4j; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.context.support.MessageSourceAccessor; @@ -35,6 +36,7 @@ import java.util.function.Supplier; * * 处理自定义授权 */ +@Slf4j public abstract class OAuth2ResourceOwnerBaseAuthenticationProvider implements AuthenticationProvider { @@ -263,7 +265,10 @@ public abstract class OAuth2ResourceOwnerBaseAuthenticationProvider Date: Sat, 21 Jan 2023 14:02:35 +0800 Subject: [PATCH 021/105] :arrow_up: up springboot 2.7.8 --- pig-common/pig-common-bom/pom.xml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index b881b89f3..a66647d3a 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -15,7 +15,7 @@ ${project.version} - 2.7.6 + 2.7.8 UTF-8 2.17.1 1.8 diff --git a/pom.xml b/pom.xml index 5efa7fe1a..5b5a62933 100755 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.7 + 2.7.8 2021.0.5 2021.0.4.0 UTF-8 -- Gitee From 161d3a57f1743e704c3a33bf4a7bf218fa2efd6d Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 21 Jan 2023 14:06:47 +0800 Subject: [PATCH 022/105] =?UTF-8?q?:sparkles:=20close=20#I6B5EU=20common-f?= =?UTF-8?q?eign=20=E6=94=AF=E6=8C=81=E6=8E=A5=E5=8F=A3=E7=BA=A7=E5=88=AB?= =?UTF-8?q?=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-common/pig-common-feign/pom.xml | 97 ++++++++++--------- .../feign/PigFeignAutoConfiguration.java | 6 ++ .../pig/common/feign/annotation/Backoff.java | 21 ++++ .../common/feign/annotation/FeignRetry.java | 21 ++++ .../common/feign/retry/FeignRetryAspect.java | 94 ++++++++++++++++++ .../ext/PigSentinelInvocationHandler.java | 8 +- pig-upms/pig-upms-api/pom.xml | 4 +- 7 files changed, 201 insertions(+), 50 deletions(-) create mode 100644 pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java create mode 100644 pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/FeignRetry.java create mode 100644 pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java diff --git a/pig-common/pig-common-feign/pom.xml b/pig-common/pig-common-feign/pom.xml index 4026a01ac..8e1338694 100755 --- a/pig-common/pig-common-feign/pom.xml +++ b/pig-common/pig-common-feign/pom.xml @@ -16,52 +16,57 @@ --> - - com.pig4cloud - pig-common - 3.6.5 - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + com.pig4cloud + pig-common + 3.6.5 + - 4.0.0 - jar - pig-common-feign - feign-sentinel服务降级熔断、限流组件 + 4.0.0 + jar + pig-common-feign + feign-sentinel服务降级熔断、限流组件 - - - com.pig4cloud - pig-common-core - - - com.alibaba.cloud - spring-cloud-starter-alibaba-sentinel - - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - io.github.openfeign - feign-okhttp - - - - org.springframework.cloud - spring-cloud-starter-loadbalancer - - - - com.github.ben-manes.caffeine - caffeine - - - - org.springframework.security - spring-security-core - - + + + com.pig4cloud + pig-common-core + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.github.openfeign + feign-okhttp + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + com.github.ben-manes.caffeine + caffeine + + + + org.springframework.security + spring-security-core + + + + org.springframework.retry + spring-retry + + diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java index 44de28367..d550babcb 100755 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java @@ -20,6 +20,7 @@ import com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import com.fasterxml.jackson.databind.ObjectMapper; +import com.pig4cloud.pig.common.feign.retry.FeignRetryAspect; import com.pig4cloud.pig.common.feign.sentinel.ext.PigSentinelFeign; import com.pig4cloud.pig.common.feign.sentinel.handle.PigUrlBlockHandler; import com.pig4cloud.pig.common.feign.sentinel.parser.PigHeaderRequestOriginParser; @@ -61,4 +62,9 @@ public class PigFeignAutoConfiguration { return new PigHeaderRequestOriginParser(); } + @Bean + public FeignRetryAspect feignRetryAspect() { + return new FeignRetryAspect(); + } + } diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java new file mode 100644 index 000000000..5efbdbce9 --- /dev/null +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java @@ -0,0 +1,21 @@ +package com.pig4cloud.pig.common.feign.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 重试具体的策略 + */ +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface Backoff { + + long delay() default 1000L;; + + long maxDelay() default 0L; + + double multiplier() default 0.0D;; + +} diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/FeignRetry.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/FeignRetry.java new file mode 100644 index 000000000..846d09a39 --- /dev/null +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/FeignRetry.java @@ -0,0 +1,21 @@ +package com.pig4cloud.pig.common.feign.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 重试注解,作用在 @FeignClient 注解之上 + */ +@Target({ ElementType.METHOD, ElementType.TYPE }) +@Retention(RetentionPolicy.RUNTIME) +public @interface FeignRetry { + + Backoff backoff() default @Backoff(); + + int maxAttempt() default 3; + + Class[] include() default {}; + +} diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java new file mode 100644 index 000000000..a1a33311f --- /dev/null +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java @@ -0,0 +1,94 @@ +package com.pig4cloud.pig.common.feign.retry; + +import com.pig4cloud.pig.common.feign.annotation.FeignRetry; +import feign.RetryableException; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.retry.backoff.BackOffPolicy; +import org.springframework.retry.backoff.ExponentialBackOffPolicy; +import org.springframework.retry.backoff.FixedBackOffPolicy; +import org.springframework.retry.policy.SimpleRetryPolicy; +import org.springframework.retry.support.RetryTemplate; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +/** + * FeignRetry 注解切面注入 retryTemplate + * + * @author lengleng + * @date 2023/1/21 + * {@link org.springframework.cloud.loadbalancer.blocking.retry.BlockingLoadBalancedRetryPolicy}. + */ +@Slf4j +@Aspect +@Component +public class FeignRetryAspect { + + @Around("@annotation(feignRetry)") + public Object retry(ProceedingJoinPoint joinPoint, FeignRetry feignRetry) throws Throwable { + Method method = getCurrentMethod(joinPoint); + + RetryTemplate retryTemplate = new RetryTemplate(); + retryTemplate.setBackOffPolicy(prepareBackOffPolicy(feignRetry)); + retryTemplate.setRetryPolicy(prepareSimpleRetryPolicy(feignRetry)); + + // 重试 + return retryTemplate.execute(arg0 -> { + int retryCount = arg0.getRetryCount(); + log.info("Sending request method: {}, max attempt: {}, delay: {}, retryCount: {}", method.getName(), + feignRetry.maxAttempt(), feignRetry.backoff().delay(), retryCount); + return joinPoint.proceed(joinPoint.getArgs()); + }); + } + + /** + * 构造重试策略 + * @param feignRetry 重试注解 + * @return BackOffPolicy + */ + private BackOffPolicy prepareBackOffPolicy(FeignRetry feignRetry) { + if (feignRetry.backoff().multiplier() != 0) { + ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy(); + backOffPolicy.setInitialInterval(feignRetry.backoff().delay()); + backOffPolicy.setMaxInterval(feignRetry.backoff().maxDelay()); + backOffPolicy.setMultiplier(feignRetry.backoff().multiplier()); + return backOffPolicy; + } + else { + FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy(); + fixedBackOffPolicy.setBackOffPeriod(feignRetry.backoff().delay()); + return fixedBackOffPolicy; + } + } + + /** + * 构造重试策略 + * @param feignRetry 重试注解 + * @return SimpleRetryPolicy + */ + private SimpleRetryPolicy prepareSimpleRetryPolicy(FeignRetry feignRetry) { + Map, Boolean> policyMap = new HashMap<>(); + policyMap.put(RetryableException.class, true); // Connection refused or time out + + if (feignRetry.include().length != 0) { + for (Class t : feignRetry.include()) { + policyMap.put(t, true); + } + } + + return new SimpleRetryPolicy(feignRetry.maxAttempt(), policyMap, true); + } + + private Method getCurrentMethod(JoinPoint joinPoint) { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + return signature.getMethod(); + } + +} diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java index da0afb5be..1c155d9f4 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java @@ -25,12 +25,14 @@ import com.alibaba.csp.sentinel.Tracer; import com.alibaba.csp.sentinel.context.ContextUtil; import com.alibaba.csp.sentinel.slots.block.BlockException; import com.pig4cloud.pig.common.core.util.R; +import com.pig4cloud.pig.common.feign.annotation.FeignRetry; import feign.Feign; import feign.InvocationHandlerFactory; import feign.MethodMetadata; import feign.Target; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.core.annotation.AnnotationUtils; import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationTargetException; @@ -38,6 +40,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Objects; import static feign.Util.checkNotNull; @@ -134,8 +137,9 @@ public class PigSentinelInvocationHandler implements InvocationHandler { } } else { - // 若是R类型 执行自动降级返回R - if (R.class == method.getReturnType()) { + // 若是R类型 并且不包含@FeignRetry 执行自动降级返回R + FeignRetry feignRetry = AnnotationUtils.findAnnotation(method, FeignRetry.class); + if (R.class == method.getReturnType() && Objects.isNull(feignRetry)) { log.error("feign 服务间调用异常", ex); return R.failed(ex.getLocalizedMessage()); } diff --git a/pig-upms/pig-upms-api/pom.xml b/pig-upms/pig-upms-api/pom.xml index 68520c51a..d924b07db 100755 --- a/pig-upms/pig-upms-api/pom.xml +++ b/pig-upms/pig-upms-api/pom.xml @@ -43,8 +43,8 @@ - org.springframework.cloud - spring-cloud-openfeign-core + com.pig4cloud + pig-common-feign true -- Gitee From 8e41f5e2622fbcb9d4b7a81d8c39da4baf448cc5 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 28 Jan 2023 14:41:01 +0800 Subject: [PATCH 023/105] =?UTF-8?q?:card=5Ffile=5Fbox:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=97=A0=E7=94=A8oauth2=20client=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig_config.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/db/pig_config.sql b/db/pig_config.sql index ef2114064..44137fdb2 100644 --- a/db/pig_config.sql +++ b/db/pig_config.sql @@ -37,12 +37,12 @@ CREATE TABLE `config_info` ( -- Records of config_info -- ---------------------------- BEGIN; -INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 加解密根密码\njasypt:\n encryptor:\n password: pig #根密码\n \n# Spring 相关\nspring:\n cache:\n type: redis\n redis:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \"*\" \n endpoint:\n health:\n show-details: ALWAYS\n\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# spring security 配置\nsecurity:\n oauth2:\n # 通用放行URL,服务个性化,请在对应配置文件覆盖\n ignore:\n urls:\n - /v3/api-docs\n - /actuator/**\n\n# swagger 配置\nswagger:\n enabled: true\n title: Pig Swagger API\n gateway: http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}\n token-url: ${swagger.gateway}/auth/oauth2/token\n scope: server\n services:\n pig-upms-biz: admin\n pig-codegen: gen', 'a9fec7814841cfa5db8db2e4e6bdbf50', '2022-05-08 12:10:37', '2022-08-07 14:40:17', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 加解密根密码\njasypt:\n encryptor:\n password: pig #根密码\n \n# Spring 相关\nspring:\n cache:\n type: redis\n redis:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \"*\" \n endpoint:\n health:\n show-details: ALWAYS\n\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# swagger 配置\nswagger:\n enabled: true\n title: Pig Swagger API\n gateway: http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}\n token-url: ${swagger.gateway}/auth/oauth2/token\n scope: server\n services:\n pig-upms-biz: admin\n pig-codegen: gen', 'ef637d9ffc033db98d10f628cfec967e', '2022-05-08 12:10:37', '2023-01-28 14:13:58', '', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (2, 'pig-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '74f53b71c7799aa754da75662378b93c', '2022-05-08 12:10:37', '2022-06-04 14:15:35', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); -INSERT INTO `config_info` VALUES (3, 'pig-codegen-dev.yml', 'DEFAULT_GROUP', '## spring security 配置\nsecurity:\n oauth2:\n client:\n client-id: ENC(27v1agvAug87ANOVnbKdsw==)\n client-secret: ENC(VbnkopxrwgbFVKp+UxJ2pg==)\n scope: server\n\n# 数据源配置\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n', '02fe9e81c41986626067b8cbe589b77f', '2022-05-08 12:10:37', '2022-05-08 12:10:37', NULL, '127.0.0.1', '', '', NULL, NULL, NULL, 'yaml', NULL, ''); +INSERT INTO `config_info` VALUES (3, 'pig-codegen-dev.yml', 'DEFAULT_GROUP', '# 数据源配置\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n', 'cf786dbe3b07074fc187bf2eab3266b1', '2022-05-08 12:10:37', '2023-01-28 14:05:36', '', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (4, 'pig-gateway-dev.yml', 'DEFAULT_GROUP', 'spring:\n cloud:\n gateway:\n locator:\n enabled: true\n routes:\n # 认证中心\n - id: pig-auth\n uri: lb://pig-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - ValidateCodeGatewayFilter\n # 前端密码解密\n - PasswordDecoderFilter\n #UPMS 模块\n - id: pig-upms-biz\n uri: lb://pig-upms-biz\n predicates:\n - Path=/admin/**\n filters:\n # 限流配置\n - name: RequestRateLimiter\n args:\n key-resolver: \'#{@remoteAddrKeyResolver}\'\n redis-rate-limiter.replenishRate: 100\n redis-rate-limiter.burstCapacity: 200\n # 代码生成模块\n - id: pig-codegen\n uri: lb://pig-codegen\n predicates:\n - Path=/gen/**\n # 固定路由转发配置 无修改\n - id: openapi\n uri: lb://pig-gateway\n predicates:\n - Path=/v3/api-docs/**\n filters:\n - RewritePath=/v3/api-docs/(?.*), /$\\{path}/$\\{path}/v3/api-docs\n\ngateway:\n encode-key: \'thanks,pig4cloud\'\n ignore-clients:\n - test\n - client', '000988cf0102382d3f23df35027b47fd', '2022-05-08 12:10:37', '2022-06-07 14:00:11', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (5, 'pig-monitor-dev.yml', 'DEFAULT_GROUP', 'spring:\n autoconfigure:\n exclude: com.pig4cloud.pig.common.core.config.JacksonConfiguration\n # 安全配置\n security:\n user:\n name: ENC(8Hk2ILNJM8UTOuW/Xi75qg==) # pig\n password: ENC(o6cuPFfUevmTbkmBnE67Ow====) # pig\n', '650bdfa15f60f3faa84dfe6e6878b8cf', '2022-05-08 12:10:37', '2022-05-08 12:10:37', NULL, '127.0.0.1', '', '', NULL, NULL, NULL, 'yaml', NULL, ''); -INSERT INTO `config_info` VALUES (6, 'pig-upms-biz-dev.yml', 'DEFAULT_GROUP', 'security:\n oauth2:\n client:\n client-id: ENC(imENTO7M8bLO38LFSIxnzw==)\n client-secret: ENC(i3cDFhs26sa2Ucrfz2hnQw==)\n scope: server\n\n# 数据源\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n\n# 文件上传相关 支持阿里云、华为云、腾讯、minio\noss:\n endpoint: http://minio.pig4cloud.com\n accessKey: lengleng\n secretKey: lengleng\n bucket-name: tmp', '107614b40932e8237787b769e0937ed2', '2022-05-08 12:10:37', '2022-05-08 12:10:37', NULL, '127.0.0.1', '', '', NULL, NULL, NULL, 'yaml', NULL, ''); +INSERT INTO `config_info` VALUES (6, 'pig-upms-biz-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n\n# 文件上传相关 支持阿里云、华为云、腾讯、minio\noss:\n endpoint: http://minio.pig4cloud.com\n accessKey: lengleng\n secretKey: lengleng\n bucket-name: tmp', '899d2431d91da0d521378cc7fa61268d', '2022-05-08 12:10:37', '2023-01-28 14:01:46', '', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (7, 'pig-xxl-job-admin-dev.yml', 'DEFAULT_GROUP', '# xxl\nxxl:\n job:\n accessToken: default_token\n i18n: zh_CN\n logretentiondays: 30\n triggerpool:\n fast.max: 200\n slow.max: 200\n\n# mybatis\nmybatis:\n mapper-locations: classpath:/mybatis-mapper/*Mapper.xml\n\nspring:\n datasource:\n url: jdbc:mysql://${MYSQL_HOST:pig-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pig_job}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: ${MYSQL_USER:root}\n password: ${MYSQL_PWD:root}\n mvc:\n static-path-pattern: /static/**\n freemarker:\n suffix: .ftl\n request-context-attribute: request\n settings:\n number_format: 0.##########\n mail:\n host: smtp.mxhichina.com\n port: 465\n from: xxxx@gitee.wang\n username: xxxx@gitee.wang\n password: xxxx\n properties:\n mail:\n smtp:\n auth: true\n ssl.enable: true\n starttls.enable: false\n required: false\n# spring boot admin 配置\n\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \'*\'\n endpoint:\n health:\n show-details: ALWAYS\n\n', 'b67cbbd37c8b42cdc6521780b3ed742a', '2022-11-27 17:23:42', '2022-11-27 17:28:01', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); COMMIT; -- Gitee From d9738718bfb4c9189aca69c27274af7fc16e8dd7 Mon Sep 17 00:00:00 2001 From: unreleased Date: Tue, 31 Jan 2023 08:46:58 +0000 Subject: [PATCH 024/105] =?UTF-8?q?update=20pig-visual/pig-sentinel-dashbo?= =?UTF-8?q?ard/src/main/resources/application.yml.=20sentinel=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=B7=BB=E5=8A=A0nacos=E8=B4=A6=E5=8F=B7=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=90=A6=E5=88=99=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: unreleased --- .../pig-sentinel-dashboard/src/main/resources/application.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pig-visual/pig-sentinel-dashboard/src/main/resources/application.yml b/pig-visual/pig-sentinel-dashboard/src/main/resources/application.yml index f70cb9323..d88c2d1be 100755 --- a/pig-visual/pig-sentinel-dashboard/src/main/resources/application.yml +++ b/pig-visual/pig-sentinel-dashboard/src/main/resources/application.yml @@ -9,6 +9,8 @@ spring: name: @artifactId@ cloud: nacos: + username: @nacos.username@ + password: @nacos.password@ discovery: server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} -- Gitee From 708d4f60cf6218cba7e35963aef8870011aa90ac Mon Sep 17 00:00:00 2001 From: yeluo Date: Tue, 7 Feb 2023 14:17:08 +0800 Subject: [PATCH 025/105] =?UTF-8?q?=E9=AD=94=E6=B3=95=E5=80=BC=20"state"?= =?UTF-8?q?=20=E7=BB=9F=E4=B8=80=E6=8D=A2=E6=88=90=20OAuth2ParameterNames.?= =?UTF-8?q?STATE=20=E5=B8=B8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/PigRedisOAuth2AuthorizationService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java index 7ba2a2255..ddfec49ce 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java @@ -37,7 +37,7 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe Assert.notNull(authorization, "authorization cannot be null"); if (isState(authorization)) { - String token = authorization.getAttribute("state"); + String token = authorization.getAttribute(OAuth2ParameterNames.STATE); redisTemplate.setValueSerializer(RedisSerializer.java()); redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.STATE, token), authorization, TIMEOUT, TimeUnit.MINUTES); @@ -77,7 +77,7 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe List keys = new ArrayList<>(); if (isState(authorization)) { - String token = authorization.getAttribute("state"); + String token = authorization.getAttribute(OAuth2ParameterNames.STATE); keys.add(buildKey(OAuth2ParameterNames.STATE, token)); } @@ -120,7 +120,7 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe } private static boolean isState(OAuth2Authorization authorization) { - return Objects.nonNull(authorization.getAttribute("state")); + return Objects.nonNull(authorization.getAttribute(OAuth2ParameterNames.STATE)); } private static boolean isCode(OAuth2Authorization authorization) { -- Gitee From 2df4b463ff829a941f0e4d98fe136bf47a2dc4a0 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 7 Feb 2023 20:24:49 +0800 Subject: [PATCH 026/105] =?UTF-8?q?:card=5Ffile=5Fbox:=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96nacos=20=E6=95=B0=E6=8D=AE=E5=BA=93=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-register/src/main/resources/application.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-register/src/main/resources/application.yml b/pig-register/src/main/resources/application.yml index 461e91785..588995272 100755 --- a/pig-register/src/main/resources/application.yml +++ b/pig-register/src/main/resources/application.yml @@ -11,7 +11,7 @@ db: password: ${MYSQL_PWD:root} url: 0: jdbc:mysql://${MYSQL_HOST:pig-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:pig_config}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true - + pool.config.connectionTimeout: 30000 nacos: core: -- Gitee From c15dc143fbf593e124a8a8831a1c26f852ea674e Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 16 Feb 2023 12:12:54 +0800 Subject: [PATCH 027/105] :arrow_up: Upgrading dependencies. hutool 5.8.12 --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eab12a5ad..719de259e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.0 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.10 | +| hutool | 5.8.12 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index a66647d3a..9cbc23c48 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.10 + 5.8.12 2.7.4 1.8.4 -- Gitee From fd7be54d84493d791e1d753b5cc82c9f63d667c1 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 21 Feb 2023 10:04:48 +0800 Subject: [PATCH 028/105] =?UTF-8?q?:arrow=5Fup:=20Upgrading=20dependencies?= =?UTF-8?q?.=20maven=203.9.0=20=E7=BC=96=E8=AF=91=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-register/pom.xml | 2 ++ pig-visual/pig-xxl-job-admin/pom.xml | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pig-register/pom.xml b/pig-register/pom.xml index 45e0284e9..1dede07a0 100755 --- a/pig-register/pom.xml +++ b/pig-register/pom.xml @@ -94,6 +94,7 @@ **/*.woff **/*.woff2 **/*.ttf + **/*.eot @@ -103,6 +104,7 @@ **/*.woff **/*.woff2 **/*.ttf + **/*.eot diff --git a/pig-visual/pig-xxl-job-admin/pom.xml b/pig-visual/pig-xxl-job-admin/pom.xml index b3553c3e0..ee359efc6 100644 --- a/pig-visual/pig-xxl-job-admin/pom.xml +++ b/pig-visual/pig-xxl-job-admin/pom.xml @@ -95,9 +95,11 @@ src/main/resources true - sta**/*.woff + **/*.woff **/*.woff2 + **/*.otf **/*.ttf + **/*.eot @@ -107,6 +109,8 @@ **/*.woff **/*.woff2 **/*.ttf + **/*.otf + **/*.eot -- Gitee From 68ad6dffa95b391fb80000dc7d6e0505c494eb8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Wed, 22 Feb 2023 10:19:44 +0800 Subject: [PATCH 029/105] =?UTF-8?q?:arrow=5Fup:=20=E5=8D=87=E7=BA=A7=20spr?= =?UTF-8?q?ing-authorization-server=20=E5=88=B0=200.4.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 719de259e..d0a9e0503 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ | Spring Boot | 2.7.7 | | Spring Cloud | 2021.0.5 | | Spring Cloud Alibaba | 2021.0.4.0 | -| Spring Authorization Server | 0.4.0 | +| Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | | hutool | 5.8.12 | diff --git a/pom.xml b/pom.xml index 5b5a62933..16b1ed927 100755 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ 1.8 1.8 2.7.9 - 0.4.0 + 0.4.1 3.6.0 2.2.2 2.3 -- Gitee From fc34c7b46672d6544b1bfd3dfed2fe2ee1bb9f3b Mon Sep 17 00:00:00 2001 From: jumuning <840256574@qq.com> Date: Thu, 23 Feb 2023 11:05:08 +0800 Subject: [PATCH 030/105] =?UTF-8?q?=E5=86=97=E4=BD=99=E6=A0=87=E7=82=B9?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pig4cloud/pig/common/feign/annotation/Backoff.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java index 5efbdbce9..65b296648 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java @@ -12,10 +12,10 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface Backoff { - long delay() default 1000L;; + long delay() default 1000L; long maxDelay() default 0L; - double multiplier() default 0.0D;; + double multiplier() default 0.0D } -- Gitee From 6c1c772b8a188f6aa5fc6d807677991be99743c6 Mon Sep 17 00:00:00 2001 From: jumuning <840256574@qq.com> Date: Thu, 23 Feb 2023 14:40:27 +0800 Subject: [PATCH 031/105] =?UTF-8?q?=E5=86=97=E4=BD=99=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E9=87=8D=E6=96=B0=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=B0=B1=E8=83=BD?= =?UTF-8?q?=E6=BB=A1=E8=B6=B3=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...edentialsOAuth2AuthenticatedPrincipal.java | 40 ------------------- .../PigCustomOpaqueTokenIntrospector.java | 5 ++- 2 files changed, 3 insertions(+), 42 deletions(-) delete mode 100644 pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigClientCredentialsOAuth2AuthenticatedPrincipal.java diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigClientCredentialsOAuth2AuthenticatedPrincipal.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigClientCredentialsOAuth2AuthenticatedPrincipal.java deleted file mode 100644 index 9765be356..000000000 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigClientCredentialsOAuth2AuthenticatedPrincipal.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.pig4cloud.pig.common.security.component; - -import lombok.RequiredArgsConstructor; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal; - -import java.util.Collection; -import java.util.Map; - -/** - * @author lengleng - * @date 2022/7/6 - * - * credential 支持客户端模式的用户存储 - */ -@RequiredArgsConstructor -public class PigClientCredentialsOAuth2AuthenticatedPrincipal implements OAuth2AuthenticatedPrincipal { - - private final Map attributes; - - private final Collection authorities; - - private final String name; - - @Override - public Map getAttributes() { - return this.attributes; - } - - @Override - public Collection getAuthorities() { - return this.authorities; - } - - @Override - public String getName() { - return this.name; - } - -} diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java index d250f389e..17ecb1aae 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java @@ -11,6 +11,7 @@ import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.oauth2.core.AuthorizationGrantType; +import org.springframework.security.oauth2.core.DefaultOAuth2AuthenticatedPrincipal; import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal; import org.springframework.security.oauth2.server.authorization.OAuth2Authorization; import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService; @@ -43,8 +44,8 @@ public class PigCustomOpaqueTokenIntrospector implements OpaqueTokenIntrospector // 客户端模式默认返回 if (AuthorizationGrantType.CLIENT_CREDENTIALS.equals(oldAuthorization.getAuthorizationGrantType())) { - return new PigClientCredentialsOAuth2AuthenticatedPrincipal(oldAuthorization.getAttributes(), - AuthorityUtils.NO_AUTHORITIES, oldAuthorization.getPrincipalName()); + return new DefaultOAuth2AuthenticatedPrincipal(oldAuthorization.getPrincipalName(), + oldAuthorization.getAttributes(), AuthorityUtils.NO_AUTHORITIES); } Map userDetailsServiceMap = SpringUtil -- Gitee From b6163ae2ebed294f83c3ce273c322ee86ed5390c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Thu, 23 Feb 2023 15:48:20 +0800 Subject: [PATCH 032/105] =?UTF-8?q?:arrow=5Fup:=20=E5=8D=87=E7=BA=A7=20spr?= =?UTF-8?q?ing-javaformat=200.0.38?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizationServerConfiguration.java | 23 ++-- .../auth/config/WebSecurityConfiguration.java | 21 ++- .../pig/auth/endpoint/PigTokenEndpoint.java | 5 +- .../CustomeOAuth2AccessTokenGenerator.java | 2 +- ...ourceOwnerBaseAuthenticationConverter.java | 9 +- ...sourceOwnerBaseAuthenticationProvider.java | 27 ++-- .../core/FormIdentityLoginConfigurer.java | 11 +- .../core/PigDaoAuthenticationProvider.java | 18 +-- .../PigAuthenticationSuccessEventHandler.java | 3 +- ...esourceOwnerSmsAuthenticationProvider.java | 2 +- .../pig/common/core/util/WebUtils.java | 2 +- .../pig/common/feign/annotation/Backoff.java | 2 +- .../feign/sentinel/ext/PigSentinelFeign.java | 4 +- .../ext/PigSentinelInvocationHandler.java | 2 +- .../handle/GlobalBizExceptionHandler.java | 4 +- .../openfeign/PigFeignClientsRegistrar.java | 2 +- .../common/job/XxlJobAutoConfiguration.java | 11 +- .../pig/common/log/util/SysLogUtils.java | 2 +- .../resolver/SqlFilterArgumentResolver.java | 10 +- .../security/component/PermissionService.java | 6 +- .../component/PermitAllUrlProperties.java | 12 +- .../component/PigBearerTokenExtractor.java | 7 +- .../PigCustomOpaqueTokenIntrospector.java | 11 +- .../PigResourceServerConfiguration.java | 21 ++- ...edisOAuth2AuthorizationConsentService.java | 6 +- .../PigRedisOAuth2AuthorizationService.java | 25 ++-- .../PigRemoteRegisteredClientRepository.java | 50 ++++---- .../service/PigUserDetailsService.java | 2 +- .../security/util/OAuth2EndpointUtils.java | 5 +- .../common/security/util/SecurityUtils.java | 11 +- .../common/xss/PigXssAutoConfiguration.java | 6 +- .../common/xss/core/DefaultXssCleaner.java | 8 +- .../config/RateLimiterConfiguration.java | 5 +- .../filter/PigRequestGlobalFilter.java | 5 +- .../filter/SwaggerBasicGatewayFilter.java | 2 +- .../pig/gateway/handler/ImageCodeHandler.java | 9 +- .../console/controller/HealthController.java | 2 +- .../exception/ConsoleExceptionHandler.java | 2 +- .../exception/NacosApiExceptionHandler.java | 2 +- .../pig/admin/controller/DictController.java | 2 +- .../pig/admin/controller/FileController.java | 2 +- .../pig/admin/controller/MenuController.java | 11 +- .../OauthClientDetailsController.java | 2 +- .../controller/PublicParamController.java | 8 +- .../admin/service/impl/AppServiceImpl.java | 4 +- .../impl/SysDeptRelationServiceImpl.java | 10 +- .../service/impl/SysDeptServiceImpl.java | 44 ++++--- .../admin/service/impl/SysLogServiceImpl.java | 8 +- .../service/impl/SysMenuServiceImpl.java | 20 ++- .../service/impl/SysPostServiceImpl.java | 5 +- .../impl/SysPublicParamServiceImpl.java | 2 +- .../service/impl/SysRoleServiceImpl.java | 5 +- .../service/impl/SysUserServiceImpl.java | 39 +++--- .../impl/GenDatasourceConfServiceImpl.java | 8 +- .../service/impl/GenFormConfServiceImpl.java | 5 +- .../service/impl/GeneratorServiceImpl.java | 6 +- .../pig/codegen/support/StyleTypeEnum.java | 7 +- .../monitor/config/WebSecurityConfigurer.java | 28 +++- .../NacosServiceInstanceConverter.java | 9 +- .../DefaultLoginAuthenticationFilter.java | 2 +- .../dashboard/client/SentinelApiClient.java | 121 ++++++++++-------- .../dashboard/controller/AppController.java | 6 +- .../controller/ParamFlowRuleController.java | 13 +- .../controller/ResourceController.java | 4 +- .../cluster/ClusterConfigController.java | 15 ++- .../gateway/GatewayApiController.java | 4 +- .../gateway/GatewayFlowRuleController.java | 28 ++-- .../sentinel/dashboard/discovery/AppInfo.java | 6 +- .../dashboard/discovery/MachineInfo.java | 30 ++++- .../dashboard/metric/MetricFetcher.java | 7 +- .../metric/InMemoryMetricsRepository.java | 17 +-- .../rule/InMemoryRuleRepositoryAdapter.java | 9 +- .../dashboard/rule/FlowRuleApiProvider.java | 10 +- .../service/ClusterAssignServiceImpl.java | 86 ++++++++----- .../service/ClusterConfigService.java | 68 +++++----- .../sentinel/dashboard/util/AsyncUtils.java | 13 +- .../dashboard/util/ClusterEntityUtils.java | 41 ++++-- .../admin/controller/JobApiController.java | 5 +- .../annotation/PermissionLimit.java | 1 + .../admin/core/alarm/impl/EmailJobAlarm.java | 5 +- .../admin/core/complete/XxlJobCompleter.java | 5 +- .../route/strategy/ExecutorRouteBusyover.java | 10 +- .../route/strategy/ExecutorRouteFailover.java | 9 +- .../admin/core/thread/JobCompleteHelper.java | 5 +- .../core/thread/JobFailMonitorHelper.java | 25 ++-- .../admin/core/thread/JobLogReportHelper.java | 15 ++- .../admin/core/thread/JobRegistryHelper.java | 36 +++--- .../admin/core/thread/JobScheduleHelper.java | 9 +- .../job/admin/core/trigger/XxlJobTrigger.java | 58 +++++---- .../com/xxl/job/admin/core/util/FtlUtil.java | 2 +- pom.xml | 2 +- 91 files changed, 752 insertions(+), 497 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java index a6e9105d5..f90d4dce7 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java @@ -67,21 +67,24 @@ public class AuthorizationServerConfiguration { http.apply(authorizationServerConfigurer.tokenEndpoint((tokenEndpoint) -> {// 个性化认证授权端点 tokenEndpoint.accessTokenRequestConverter(accessTokenRequestConverter()) // 注入自定义的授权认证Converter - .accessTokenResponseHandler(new PigAuthenticationSuccessEventHandler()) // 登录成功处理器 - .errorResponseHandler(new PigAuthenticationFailureEventHandler());// 登录失败处理器 + .accessTokenResponseHandler(new PigAuthenticationSuccessEventHandler()) // 登录成功处理器 + .errorResponseHandler(new PigAuthenticationFailureEventHandler());// 登录失败处理器 }).clientAuthentication(oAuth2ClientAuthenticationConfigurer -> // 个性化客户端认证 oAuth2ClientAuthenticationConfigurer.errorResponseHandler(new PigAuthenticationFailureEventHandler()))// 处理客户端认证异常 - .authorizationEndpoint(authorizationEndpoint -> authorizationEndpoint// 授权码端点个性化confirm页面 - .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI))); + .authorizationEndpoint(authorizationEndpoint -> authorizationEndpoint// 授权码端点个性化confirm页面 + .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI))); RequestMatcher endpointsMatcher = authorizationServerConfigurer.getEndpointsMatcher(); DefaultSecurityFilterChain securityFilterChain = http.requestMatcher(endpointsMatcher) - .authorizeRequests(authorizeRequests -> authorizeRequests.anyRequest().authenticated()) - .apply(authorizationServerConfigurer.authorizationService(authorizationService)// redis存储token的实现 - .authorizationServerSettings(AuthorizationServerSettings.builder() - .issuer(SecurityConstants.PROJECT_LICENSE).build())) - // 授权码登录的登录页个性化 - .and().apply(new FormIdentityLoginConfigurer()).and().build(); + .authorizeRequests(authorizeRequests -> authorizeRequests.anyRequest().authenticated()) + .apply(authorizationServerConfigurer.authorizationService(authorizationService)// redis存储token的实现 + .authorizationServerSettings( + AuthorizationServerSettings.builder().issuer(SecurityConstants.PROJECT_LICENSE).build())) + // 授权码登录的登录页个性化 + .and() + .apply(new FormIdentityLoginConfigurer()) + .and() + .build(); // 注入自定义授权模式实现 addCustomOAuth2GrantAuthenticationProvider(http); diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java index 0ebc699d9..81736c799 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/WebSecurityConfiguration.java @@ -41,9 +41,15 @@ public class WebSecurityConfiguration { */ @Bean SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception { - http.authorizeRequests(authorizeRequests -> authorizeRequests.antMatchers("/token/*").permitAll()// 开放自定义的部分端点 - .anyRequest().authenticated()).headers().frameOptions().sameOrigin()// 避免iframe同源无法登录 - .and().apply(new FormIdentityLoginConfigurer()); // 表单登录个性化 + http.authorizeRequests(authorizeRequests -> authorizeRequests.antMatchers("/token/*") + .permitAll()// 开放自定义的部分端点 + .anyRequest() + .authenticated()) + .headers() + .frameOptions() + .sameOrigin()// 避免iframe同源无法登录 + .and() + .apply(new FormIdentityLoginConfigurer()); // 表单登录个性化 // 处理 UsernamePasswordAuthenticationToken http.authenticationProvider(new PigDaoAuthenticationProvider()); return http.build(); @@ -61,8 +67,13 @@ public class WebSecurityConfiguration { @Order(0) SecurityFilterChain resources(HttpSecurity http) throws Exception { http.requestMatchers((matchers) -> matchers.antMatchers("/actuator/**", "/css/**", "/error")) - .authorizeHttpRequests((authorize) -> authorize.anyRequest().permitAll()).requestCache().disable() - .securityContext().disable().sessionManagement().disable(); + .authorizeHttpRequests((authorize) -> authorize.anyRequest().permitAll()) + .requestCache() + .disable() + .securityContext() + .disable() + .sessionManagement() + .disable(); return http.build(); } diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/endpoint/PigTokenEndpoint.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/endpoint/PigTokenEndpoint.java index 99b647145..51b358ed2 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/endpoint/PigTokenEndpoint.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/endpoint/PigTokenEndpoint.java @@ -107,8 +107,9 @@ public class PigTokenEndpoint { @RequestParam(OAuth2ParameterNames.CLIENT_ID) String clientId, @RequestParam(OAuth2ParameterNames.SCOPE) String scope, @RequestParam(OAuth2ParameterNames.STATE) String state) { - SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)).getData() - .orElseThrow(() -> new OAuthClientException("clientId 不合法")); + SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)) + .getData() + .orElseThrow(() -> new OAuthClientException("clientId 不合法")); Set authorizedScopes = StringUtils.commaDelimitedListToSet(clientDetails.getScope()); modelAndView.addObject("clientId", clientId); diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/CustomeOAuth2AccessTokenGenerator.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/CustomeOAuth2AccessTokenGenerator.java index 7865f68d3..667f6da5a 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/CustomeOAuth2AccessTokenGenerator.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/CustomeOAuth2AccessTokenGenerator.java @@ -30,7 +30,7 @@ public class CustomeOAuth2AccessTokenGenerator implements OAuth2TokenGenerator additionalParameters = parameters.entrySet().stream() - .filter(e -> !e.getKey().equals(OAuth2ParameterNames.GRANT_TYPE) - && !e.getKey().equals(OAuth2ParameterNames.SCOPE)) - .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0))); + Map additionalParameters = parameters.entrySet() + .stream() + .filter(e -> !e.getKey().equals(OAuth2ParameterNames.GRANT_TYPE) + && !e.getKey().equals(OAuth2ParameterNames.SCOPE)) + .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0))); // 创建token return buildToken(clientPrincipal, requestedScopes, additionalParameters); diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java index 7df8b579b..0f886493a 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java @@ -141,7 +141,7 @@ public abstract class OAuth2ResourceOwnerBaseAuthenticationProvider) () -> new InternalAuthenticationServiceException("web request is empty")); + HttpServletRequest request = WebUtils.getRequest() + .orElseThrow( + (Supplier) () -> new InternalAuthenticationServiceException("web request is empty")); Map paramMap = ServletUtil.getParamMap(request); String grantType = paramMap.get(OAuth2ParameterNames.GRANT_TYPE); @@ -104,12 +105,13 @@ public class PigDaoAuthenticationProvider extends AbstractUserDetailsAuthenticat } Map userDetailsServiceMap = SpringUtil - .getBeansOfType(PigUserDetailsService.class); + .getBeansOfType(PigUserDetailsService.class); String finalClientId = clientId; - Optional optional = userDetailsServiceMap.values().stream() - .filter(service -> service.support(finalClientId, grantType)) - .max(Comparator.comparingInt(Ordered::getOrder)); + Optional optional = userDetailsServiceMap.values() + .stream() + .filter(service -> service.support(finalClientId, grantType)) + .max(Comparator.comparingInt(Ordered::getOrder)); if (!optional.isPresent()) { throw new InternalAuthenticationServiceException("UserDetailsService error , not register"); diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java index 3466b9ff6..b0e04323a 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java @@ -103,7 +103,8 @@ public class PigAuthenticationSuccessEventHandler implements AuthenticationSucce Map additionalParameters = accessTokenAuthentication.getAdditionalParameters(); OAuth2AccessTokenResponse.Builder builder = OAuth2AccessTokenResponse.withToken(accessToken.getTokenValue()) - .tokenType(accessToken.getTokenType()).scopes(accessToken.getScopes()); + .tokenType(accessToken.getTokenType()) + .scopes(accessToken.getScopes()); if (accessToken.getIssuedAt() != null && accessToken.getExpiresAt() != null) { builder.expiresIn(ChronoUnit.SECONDS.between(accessToken.getIssuedAt(), accessToken.getExpiresAt())); } diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/sms/OAuth2ResourceOwnerSmsAuthenticationProvider.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/sms/OAuth2ResourceOwnerSmsAuthenticationProvider.java index bc5566127..d7779e901 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/sms/OAuth2ResourceOwnerSmsAuthenticationProvider.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/sms/OAuth2ResourceOwnerSmsAuthenticationProvider.java @@ -52,7 +52,7 @@ public class OAuth2ResourceOwnerSmsAuthenticationProvider public void checkClient(RegisteredClient registeredClient) { assert registeredClient != null; if (!registeredClient.getAuthorizationGrantTypes() - .contains(new AuthorizationGrantType(SecurityConstants.APP))) { + .contains(new AuthorizationGrantType(SecurityConstants.APP))) { throw new OAuth2AuthenticationException(OAuth2ErrorCodes.UNAUTHORIZED_CLIENT); } } diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java index e454735fd..d407e81d1 100755 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java @@ -111,7 +111,7 @@ public class WebUtils extends org.springframework.web.util.WebUtils { */ public Optional getRequest() { return Optional - .ofNullable(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + .ofNullable(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); } /** diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java index 65b296648..7c4260d96 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/annotation/Backoff.java @@ -16,6 +16,6 @@ public @interface Backoff { long maxDelay() default 0L; - double multiplier() default 0.0D + double multiplier() default 0.0D; } diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelFeign.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelFeign.java index 474ff7175..3a6e7ea40 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelFeign.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelFeign.java @@ -106,8 +106,8 @@ public final class PigSentinelFeign { private Object getFromContext(String name, String type, Class fallbackType, Class targetType) { Object fallbackInstance = feignContext.getInstance(name, fallbackType); if (fallbackInstance == null) { - throw new IllegalStateException(String.format( - "No %s instance of type %s found for feign client %s", type, fallbackType, name)); + throw new IllegalStateException(String + .format("No %s instance of type %s found for feign client %s", type, fallbackType, name)); } if (!targetType.isAssignableFrom(fallbackType)) { diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java index 1c155d9f4..d1bf4270c 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/ext/PigSentinelInvocationHandler.java @@ -104,7 +104,7 @@ public class PigSentinelInvocationHandler implements InvocationHandler { if (target instanceof Target.HardCodedTarget) { Target.HardCodedTarget hardCodedTarget = (Target.HardCodedTarget) target; MethodMetadata methodMetadata = SentinelContractHolder.METADATA_MAP - .get(hardCodedTarget.type().getName() + Feign.configKey(hardCodedTarget.type(), method)); + .get(hardCodedTarget.type().getName() + Feign.configKey(hardCodedTarget.type(), method)); // resource default is HttpMethod:protocol://url if (methodMetadata == null) { result = methodHandler.invoke(args); diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/handle/GlobalBizExceptionHandler.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/handle/GlobalBizExceptionHandler.java index 89bad6202..3dccbf3c8 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/handle/GlobalBizExceptionHandler.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/sentinel/handle/GlobalBizExceptionHandler.java @@ -88,8 +88,8 @@ public class GlobalBizExceptionHandler { @ExceptionHandler(AccessDeniedException.class) @ResponseStatus(HttpStatus.FORBIDDEN) public R handleAccessDeniedException(AccessDeniedException e) { - String msg = SpringSecurityMessageSource.getAccessor().getMessage("AbstractAccessDecisionManager.accessDenied", - e.getMessage()); + String msg = SpringSecurityMessageSource.getAccessor() + .getMessage("AbstractAccessDecisionManager.accessDenied", e.getMessage()); log.warn("拒绝授权异常信息 ex={}", msg); return R.failed(e.getLocalizedMessage()); } diff --git a/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java b/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java index 8230d93d1..55d495c1d 100644 --- a/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java +++ b/pig-common/pig-common-feign/src/main/java/org/springframework/cloud/openfeign/PigFeignClientsRegistrar.java @@ -91,7 +91,7 @@ public class PigFeignClientsRegistrar implements ImportBeanDefinitionRegistrar, validate(attributes); BeanDefinitionBuilder definition = BeanDefinitionBuilder - .genericBeanDefinition(FeignClientFactoryBean.class); + .genericBeanDefinition(FeignClientFactoryBean.class); definition.addPropertyValue("url", getUrl(attributes)); definition.addPropertyValue("path", getPath(attributes)); String name = getName(attributes); diff --git a/pig-common/pig-common-job/src/main/java/com/pig4cloud/pig/common/job/XxlJobAutoConfiguration.java b/pig-common/pig-common-job/src/main/java/com/pig4cloud/pig/common/job/XxlJobAutoConfiguration.java index 0555aadb6..e162c0f1f 100644 --- a/pig-common/pig-common-job/src/main/java/com/pig4cloud/pig/common/job/XxlJobAutoConfiguration.java +++ b/pig-common/pig-common-job/src/main/java/com/pig4cloud/pig/common/job/XxlJobAutoConfiguration.java @@ -61,10 +61,13 @@ public class XxlJobAutoConfiguration { // 如果配置为空则获取注册中心的服务列表 "http://pig-xxl:9080/xxl-job-admin" if (!StringUtils.hasText(xxlJobProperties.getAdmin().getAddresses())) { - String serverList = discoveryClient.getServices().stream().filter(s -> s.contains(XXL_JOB_ADMIN)) - .flatMap(s -> discoveryClient.getInstances(s).stream()).map(instance -> String - .format("http://%s:%s/%s", instance.getHost(), instance.getPort(), XXL_JOB_ADMIN)) - .collect(Collectors.joining(",")); + String serverList = discoveryClient.getServices() + .stream() + .filter(s -> s.contains(XXL_JOB_ADMIN)) + .flatMap(s -> discoveryClient.getInstances(s).stream()) + .map(instance -> String.format("http://%s:%s/%s", instance.getHost(), instance.getPort(), + XXL_JOB_ADMIN)) + .collect(Collectors.joining(",")); xxlJobSpringExecutor.setAdminAddresses(serverList); } else { diff --git a/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java b/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java index 4d980646b..a748f19bd 100755 --- a/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java +++ b/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java @@ -46,7 +46,7 @@ public class SysLogUtils { public SysLog getSysLog() { HttpServletRequest request = ((ServletRequestAttributes) Objects - .requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + .requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); SysLog sysLog = new SysLog(); sysLog.setType(LogTypeEnum.NORMAL.getType()); sysLog.setRemoteAddr(ServletUtil.getClientIP(request)); diff --git a/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java b/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java index 5084471d1..683b13e07 100644 --- a/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java +++ b/pig-common/pig-common-mybatis/src/main/java/com/pig4cloud/pig/common/mybatis/resolver/SqlFilterArgumentResolver.java @@ -88,10 +88,12 @@ public class SqlFilterArgumentResolver implements HandlerMethodArgumentResolver } List orderItemList = new ArrayList<>(); - Optional.ofNullable(ascs).ifPresent(s -> orderItemList.addAll( - Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::asc).collect(Collectors.toList()))); - Optional.ofNullable(descs).ifPresent(s -> orderItemList.addAll( - Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::desc).collect(Collectors.toList()))); + Optional.ofNullable(ascs) + .ifPresent(s -> orderItemList.addAll( + Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::asc).collect(Collectors.toList()))); + Optional.ofNullable(descs) + .ifPresent(s -> orderItemList.addAll( + Arrays.stream(s).filter(sqlInjectPredicate()).map(OrderItem::desc).collect(Collectors.toList()))); page.addOrder(orderItemList); return page; diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermissionService.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermissionService.java index fcf394a47..5bef7ab35 100755 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermissionService.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermissionService.java @@ -46,8 +46,10 @@ public class PermissionService { return false; } Collection authorities = authentication.getAuthorities(); - return authorities.stream().map(GrantedAuthority::getAuthority).filter(StringUtils::hasText) - .anyMatch(x -> PatternMatchUtils.simpleMatch(permissions, x)); + return authorities.stream() + .map(GrantedAuthority::getAuthority) + .filter(StringUtils::hasText) + .anyMatch(x -> PatternMatchUtils.simpleMatch(permissions, x)); } } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermitAllUrlProperties.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermitAllUrlProperties.java index 3e8aae220..f6f068cba 100755 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermitAllUrlProperties.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PermitAllUrlProperties.java @@ -61,13 +61,17 @@ public class PermitAllUrlProperties implements InitializingBean { // 获取方法上边的注解 替代path variable 为 * Inner method = AnnotationUtils.findAnnotation(handlerMethod.getMethod(), Inner.class); - Optional.ofNullable(method).ifPresent(inner -> Objects.requireNonNull(info.getPathPatternsCondition()) - .getPatternValues().forEach(url -> urls.add(ReUtil.replaceAll(url, PATTERN, "*")))); + Optional.ofNullable(method) + .ifPresent(inner -> Objects.requireNonNull(info.getPathPatternsCondition()) + .getPatternValues() + .forEach(url -> urls.add(ReUtil.replaceAll(url, PATTERN, "*")))); // 获取类上边的注解, 替代path variable 为 * Inner controller = AnnotationUtils.findAnnotation(handlerMethod.getBeanType(), Inner.class); - Optional.ofNullable(controller).ifPresent(inner -> Objects.requireNonNull(info.getPathPatternsCondition()) - .getPatternValues().forEach(url -> urls.add(ReUtil.replaceAll(url, PATTERN, "*")))); + Optional.ofNullable(controller) + .ifPresent(inner -> Objects.requireNonNull(info.getPathPatternsCondition()) + .getPatternValues() + .forEach(url -> urls.add(ReUtil.replaceAll(url, PATTERN, "*")))); }); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigBearerTokenExtractor.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigBearerTokenExtractor.java index 47353cf9e..9868c7b18 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigBearerTokenExtractor.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigBearerTokenExtractor.java @@ -55,8 +55,9 @@ public class PigBearerTokenExtractor implements BearerTokenResolver { @Override public String resolve(HttpServletRequest request) { - boolean match = urlProperties.getUrls().stream() - .anyMatch(url -> pathMatcher.match(url, request.getRequestURI())); + boolean match = urlProperties.getUrls() + .stream() + .anyMatch(url -> pathMatcher.match(url, request.getRequestURI())); if (match) { return null; @@ -68,7 +69,7 @@ public class PigBearerTokenExtractor implements BearerTokenResolver { if (authorizationHeaderToken != null) { if (parameterToken != null) { final BearerTokenError error = BearerTokenErrors - .invalidRequest("Found multiple bearer tokens in the request"); + .invalidRequest("Found multiple bearer tokens in the request"); throw new OAuth2AuthenticationException(error); } return authorizationHeaderToken; diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java index 17ecb1aae..631a99e6c 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java @@ -49,12 +49,13 @@ public class PigCustomOpaqueTokenIntrospector implements OpaqueTokenIntrospector } Map userDetailsServiceMap = SpringUtil - .getBeansOfType(PigUserDetailsService.class); + .getBeansOfType(PigUserDetailsService.class); - Optional optional = userDetailsServiceMap.values().stream() - .filter(service -> service.support(Objects.requireNonNull(oldAuthorization).getRegisteredClientId(), - oldAuthorization.getAuthorizationGrantType().getValue())) - .max(Comparator.comparingInt(Ordered::getOrder)); + Optional optional = userDetailsServiceMap.values() + .stream() + .filter(service -> service.support(Objects.requireNonNull(oldAuthorization).getRegisteredClientId(), + oldAuthorization.getAuthorizationGrantType().getValue())) + .max(Comparator.comparingInt(Ordered::getOrder)); UserDetails userDetails = null; try { diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerConfiguration.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerConfiguration.java index 4e5a2c296..c2ca9b80e 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerConfiguration.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerConfiguration.java @@ -51,13 +51,20 @@ public class PigResourceServerConfiguration { SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.authorizeRequests(authorizeRequests -> authorizeRequests - .antMatchers(ArrayUtil.toArray(permitAllUrl.getUrls(), String.class)).permitAll().anyRequest() - .authenticated()) - .oauth2ResourceServer( - oauth2 -> oauth2.opaqueToken(token -> token.introspector(customOpaqueTokenIntrospector)) - .authenticationEntryPoint(resourceAuthExceptionEntryPoint) - .bearerTokenResolver(pigBearerTokenExtractor)) - .headers().frameOptions().disable().and().csrf().disable(); + .antMatchers(ArrayUtil.toArray(permitAllUrl.getUrls(), String.class)) + .permitAll() + .anyRequest() + .authenticated()) + .oauth2ResourceServer( + oauth2 -> oauth2.opaqueToken(token -> token.introspector(customOpaqueTokenIntrospector)) + .authenticationEntryPoint(resourceAuthExceptionEntryPoint) + .bearerTokenResolver(pigBearerTokenExtractor)) + .headers() + .frameOptions() + .disable() + .and() + .csrf() + .disable(); return http.build(); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationConsentService.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationConsentService.java index 64e919401..df83102f8 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationConsentService.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationConsentService.java @@ -19,8 +19,8 @@ public class PigRedisOAuth2AuthorizationConsentService implements OAuth2Authoriz public void save(OAuth2AuthorizationConsent authorizationConsent) { Assert.notNull(authorizationConsent, "authorizationConsent cannot be null"); - redisTemplate.opsForValue().set(buildKey(authorizationConsent), authorizationConsent, TIMEOUT, - TimeUnit.MINUTES); + redisTemplate.opsForValue() + .set(buildKey(authorizationConsent), authorizationConsent, TIMEOUT, TimeUnit.MINUTES); } @@ -35,7 +35,7 @@ public class PigRedisOAuth2AuthorizationConsentService implements OAuth2Authoriz Assert.hasText(registeredClientId, "registeredClientId cannot be empty"); Assert.hasText(principalName, "principalName cannot be empty"); return (OAuth2AuthorizationConsent) redisTemplate.opsForValue() - .get(buildKey(registeredClientId, principalName)); + .get(buildKey(registeredClientId, principalName)); } private static String buildKey(String registeredClientId, String principalName) { diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java index ddfec49ce..db7c6b1b0 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRedisOAuth2AuthorizationService.java @@ -39,35 +39,38 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe if (isState(authorization)) { String token = authorization.getAttribute(OAuth2ParameterNames.STATE); redisTemplate.setValueSerializer(RedisSerializer.java()); - redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.STATE, token), authorization, TIMEOUT, - TimeUnit.MINUTES); + redisTemplate.opsForValue() + .set(buildKey(OAuth2ParameterNames.STATE, token), authorization, TIMEOUT, TimeUnit.MINUTES); } if (isCode(authorization)) { OAuth2Authorization.Token authorizationCode = authorization - .getToken(OAuth2AuthorizationCode.class); + .getToken(OAuth2AuthorizationCode.class); OAuth2AuthorizationCode authorizationCodeToken = authorizationCode.getToken(); long between = ChronoUnit.MINUTES.between(authorizationCodeToken.getIssuedAt(), authorizationCodeToken.getExpiresAt()); redisTemplate.setValueSerializer(RedisSerializer.java()); - redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.CODE, authorizationCodeToken.getTokenValue()), - authorization, between, TimeUnit.MINUTES); + redisTemplate.opsForValue() + .set(buildKey(OAuth2ParameterNames.CODE, authorizationCodeToken.getTokenValue()), authorization, + between, TimeUnit.MINUTES); } if (isRefreshToken(authorization)) { OAuth2RefreshToken refreshToken = authorization.getRefreshToken().getToken(); long between = ChronoUnit.SECONDS.between(refreshToken.getIssuedAt(), refreshToken.getExpiresAt()); redisTemplate.setValueSerializer(RedisSerializer.java()); - redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.REFRESH_TOKEN, refreshToken.getTokenValue()), - authorization, between, TimeUnit.SECONDS); + redisTemplate.opsForValue() + .set(buildKey(OAuth2ParameterNames.REFRESH_TOKEN, refreshToken.getTokenValue()), authorization, between, + TimeUnit.SECONDS); } if (isAccessToken(authorization)) { OAuth2AccessToken accessToken = authorization.getAccessToken().getToken(); long between = ChronoUnit.SECONDS.between(accessToken.getIssuedAt(), accessToken.getExpiresAt()); redisTemplate.setValueSerializer(RedisSerializer.java()); - redisTemplate.opsForValue().set(buildKey(OAuth2ParameterNames.ACCESS_TOKEN, accessToken.getTokenValue()), - authorization, between, TimeUnit.SECONDS); + redisTemplate.opsForValue() + .set(buildKey(OAuth2ParameterNames.ACCESS_TOKEN, accessToken.getTokenValue()), authorization, between, + TimeUnit.SECONDS); } } @@ -83,7 +86,7 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe if (isCode(authorization)) { OAuth2Authorization.Token authorizationCode = authorization - .getToken(OAuth2AuthorizationCode.class); + .getToken(OAuth2AuthorizationCode.class); OAuth2AuthorizationCode authorizationCodeToken = authorizationCode.getToken(); keys.add(buildKey(OAuth2ParameterNames.CODE, authorizationCodeToken.getTokenValue())); } @@ -125,7 +128,7 @@ public class PigRedisOAuth2AuthorizationService implements OAuth2AuthorizationSe private static boolean isCode(OAuth2Authorization authorization) { OAuth2Authorization.Token authorizationCode = authorization - .getToken(OAuth2AuthorizationCode.class); + .getToken(OAuth2AuthorizationCode.class); return Objects.nonNull(authorizationCode); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java index ee44bae16..2d0b8ade3 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java @@ -87,38 +87,44 @@ public class PigRemoteRegisteredClientRepository implements RegisteredClientRepo @Cacheable(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null") public RegisteredClient findByClientId(String clientId) { - SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)).getData() - .orElseThrow(() -> new OAuth2AuthorizationCodeRequestAuthenticationException( - new OAuth2Error("客户端查询异常,请检查数据库链接"), null)); + SysOauthClientDetails clientDetails = RetOps.of(clientDetailsService.getClientDetailsById(clientId)) + .getData() + .orElseThrow(() -> new OAuth2AuthorizationCodeRequestAuthenticationException( + new OAuth2Error("客户端查询异常,请检查数据库链接"), null)); RegisteredClient.Builder builder = RegisteredClient.withId(clientDetails.getClientId()) - .clientId(clientDetails.getClientId()) - .clientSecret(SecurityConstants.NOOP + clientDetails.getClientSecret()) - .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC); + .clientId(clientDetails.getClientId()) + .clientSecret(SecurityConstants.NOOP + clientDetails.getClientSecret()) + .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC); // 授权模式 Optional.ofNullable(clientDetails.getAuthorizedGrantTypes()) - .ifPresent(grants -> StringUtils.commaDelimitedListToSet(grants) - .forEach(s -> builder.authorizationGrantType(new AuthorizationGrantType(s)))); + .ifPresent(grants -> StringUtils.commaDelimitedListToSet(grants) + .forEach(s -> builder.authorizationGrantType(new AuthorizationGrantType(s)))); // 回调地址 - Optional.ofNullable(clientDetails.getWebServerRedirectUri()).ifPresent(redirectUri -> Arrays - .stream(redirectUri.split(StrUtil.COMMA)).filter(StrUtil::isNotBlank).forEach(builder::redirectUri)); + Optional.ofNullable(clientDetails.getWebServerRedirectUri()) + .ifPresent(redirectUri -> Arrays.stream(redirectUri.split(StrUtil.COMMA)) + .filter(StrUtil::isNotBlank) + .forEach(builder::redirectUri)); // scope - Optional.ofNullable(clientDetails.getScope()).ifPresent( - scope -> Arrays.stream(scope.split(StrUtil.COMMA)).filter(StrUtil::isNotBlank).forEach(builder::scope)); + Optional.ofNullable(clientDetails.getScope()) + .ifPresent(scope -> Arrays.stream(scope.split(StrUtil.COMMA)) + .filter(StrUtil::isNotBlank) + .forEach(builder::scope)); return builder - .tokenSettings(TokenSettings.builder().accessTokenFormat(OAuth2TokenFormat.REFERENCE) - .accessTokenTimeToLive(Duration.ofSeconds(Optional - .ofNullable(clientDetails.getAccessTokenValidity()).orElse(accessTokenValiditySeconds))) - .refreshTokenTimeToLive( - Duration.ofSeconds(Optional.ofNullable(clientDetails.getRefreshTokenValidity()) - .orElse(refreshTokenValiditySeconds))) - .build()) - .clientSettings(ClientSettings.builder() - .requireAuthorizationConsent(!BooleanUtil.toBoolean(clientDetails.getAutoapprove())).build()) - .build(); + .tokenSettings(TokenSettings.builder() + .accessTokenFormat(OAuth2TokenFormat.REFERENCE) + .accessTokenTimeToLive(Duration.ofSeconds( + Optional.ofNullable(clientDetails.getAccessTokenValidity()).orElse(accessTokenValiditySeconds))) + .refreshTokenTimeToLive(Duration.ofSeconds(Optional.ofNullable(clientDetails.getRefreshTokenValidity()) + .orElse(refreshTokenValiditySeconds))) + .build()) + .clientSettings(ClientSettings.builder() + .requireAuthorizationConsent(!BooleanUtil.toBoolean(clientDetails.getAutoapprove())) + .build()) + .build(); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUserDetailsService.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUserDetailsService.java index 53202225c..4b33f304b 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUserDetailsService.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUserDetailsService.java @@ -62,7 +62,7 @@ public interface PigUserDetailsService extends UserDetailsService, Ordered { } Collection authorities = AuthorityUtils - .createAuthorityList(dbAuthsSet.toArray(new String[0])); + .createAuthorityList(dbAuthsSet.toArray(new String[0])); SysUser user = info.getSysUser(); // 构造security用户 diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java index 4ff9c03a4..be8b7cb1d 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java @@ -39,7 +39,7 @@ public class OAuth2EndpointUtils { public boolean matchesPkceTokenRequest(HttpServletRequest request) { return AuthorizationGrantType.AUTHORIZATION_CODE.getValue() - .equals(request.getParameter(OAuth2ParameterNames.GRANT_TYPE)) + .equals(request.getParameter(OAuth2ParameterNames.GRANT_TYPE)) && request.getParameter(OAuth2ParameterNames.CODE) != null && request.getParameter(PkceParameterNames.CODE_VERIFIER) != null; } @@ -63,7 +63,8 @@ public class OAuth2EndpointUtils { OAuth2RefreshToken refreshToken = authentication.getRefreshToken().getToken(); OAuth2AccessTokenResponse.Builder builder = OAuth2AccessTokenResponse.withToken(accessToken.getTokenValue()) - .tokenType(accessToken.getTokenType()).scopes(accessToken.getScopes()); + .tokenType(accessToken.getTokenType()) + .scopes(accessToken.getScopes()); if (accessToken.getIssuedAt() != null && accessToken.getExpiresAt() != null) { builder.expiresIn(ChronoUnit.SECONDS.between(accessToken.getIssuedAt(), accessToken.getExpiresAt())); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java index 292636ec9..a26c9e6ae 100755 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java @@ -74,11 +74,12 @@ public class SecurityUtils { Collection authorities = authentication.getAuthorities(); List roleIds = new ArrayList<>(); - authorities.stream().filter(granted -> StrUtil.startWith(granted.getAuthority(), SecurityConstants.ROLE)) - .forEach(granted -> { - String id = StrUtil.removePrefix(granted.getAuthority(), SecurityConstants.ROLE); - roleIds.add(Long.parseLong(id)); - }); + authorities.stream() + .filter(granted -> StrUtil.startWith(granted.getAuthority(), SecurityConstants.ROLE)) + .forEach(granted -> { + String id = StrUtil.removePrefix(granted.getAuthority(), SecurityConstants.ROLE); + roleIds.add(Long.parseLong(id)); + }); return roleIds; } diff --git a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/PigXssAutoConfiguration.java b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/PigXssAutoConfiguration.java index b5f7b88cb..2bf54e9b4 100644 --- a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/PigXssAutoConfiguration.java +++ b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/PigXssAutoConfiguration.java @@ -75,8 +75,10 @@ public class PigXssAutoConfiguration implements WebMvcConfigurer { } com.pig4cloud.pig.common.xss.core.XssCleanInterceptor interceptor = new com.pig4cloud.pig.common.xss.core.XssCleanInterceptor( xssProperties); - registry.addInterceptor(interceptor).addPathPatterns(patterns) - .excludePathPatterns(xssProperties.getPathExcludePatterns()).order(Ordered.LOWEST_PRECEDENCE); + registry.addInterceptor(interceptor) + .addPathPatterns(patterns) + .excludePathPatterns(xssProperties.getPathExcludePatterns()) + .order(Ordered.LOWEST_PRECEDENCE); } } diff --git a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/DefaultXssCleaner.java b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/DefaultXssCleaner.java index 338f2da31..7be9a6ded 100644 --- a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/DefaultXssCleaner.java +++ b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/DefaultXssCleaner.java @@ -40,10 +40,10 @@ public class DefaultXssCleaner implements XssCleaner { private static Document.OutputSettings getOutputSettings(PigXssProperties properties) { return new Document.OutputSettings() - // 2. 转义,没找到关闭的方法,目前这个规则最少 - .escapeMode(Entities.EscapeMode.xhtml) - // 3. 保留换行 - .prettyPrint(properties.isPrettyPrint()); + // 2. 转义,没找到关闭的方法,目前这个规则最少 + .escapeMode(Entities.EscapeMode.xhtml) + // 3. 保留换行 + .prettyPrint(properties.isPrettyPrint()); } @Override diff --git a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/config/RateLimiterConfiguration.java b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/config/RateLimiterConfiguration.java index a3c595c79..36cf7bf6c 100755 --- a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/config/RateLimiterConfiguration.java +++ b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/config/RateLimiterConfiguration.java @@ -38,8 +38,9 @@ public class RateLimiterConfiguration { @Bean public KeyResolver remoteAddrKeyResolver() { return exchange -> Mono - .just(Objects.requireNonNull(Objects.requireNonNull(exchange.getRequest().getRemoteAddress())) - .getAddress().getHostAddress()); + .just(Objects.requireNonNull(Objects.requireNonNull(exchange.getRequest().getRemoteAddress())) + .getAddress() + .getHostAddress()); } } diff --git a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/PigRequestGlobalFilter.java b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/PigRequestGlobalFilter.java index 16b3f658c..f432e1e6c 100755 --- a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/PigRequestGlobalFilter.java +++ b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/PigRequestGlobalFilter.java @@ -65,8 +65,9 @@ public class PigRequestGlobalFilter implements GlobalFilter, Ordered { // 2. 重写StripPrefix addOriginalRequestUrl(exchange, request.getURI()); String rawPath = request.getURI().getRawPath(); - String newPath = "/" + Arrays.stream(StringUtils.tokenizeToStringArray(rawPath, "/")).skip(1L) - .collect(Collectors.joining("/")); + String newPath = "/" + Arrays.stream(StringUtils.tokenizeToStringArray(rawPath, "/")) + .skip(1L) + .collect(Collectors.joining("/")); ServerHttpRequest newRequest = request.mutate().path(newPath).build(); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, newRequest.getURI()); diff --git a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/SwaggerBasicGatewayFilter.java b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/SwaggerBasicGatewayFilter.java index e52e4c87b..522d40934 100644 --- a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/SwaggerBasicGatewayFilter.java +++ b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/filter/SwaggerBasicGatewayFilter.java @@ -68,7 +68,7 @@ public class SwaggerBasicGatewayFilter implements GlobalFilter { String password = swaggerProperties.getBasic().getPassword(); String encodeToString = Base64Utils - .encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8)); + .encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8)); return auth.equals(BASIC_PREFIX + encodeToString); } diff --git a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java index ee227a3dc..d401497a1 100755 --- a/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java +++ b/pig-gateway/src/main/java/com/pig4cloud/pig/gateway/handler/ImageCodeHandler.java @@ -59,15 +59,16 @@ public class ImageCodeHandler implements HandlerFunction { // 保存验证码信息 Optional randomStr = serverRequest.queryParam("randomStr"); redisTemplate.setKeySerializer(new StringRedisSerializer()); - randomStr.ifPresent(s -> redisTemplate.opsForValue().set(CacheConstants.DEFAULT_CODE_KEY + s, result, - SecurityConstants.CODE_TIME, TimeUnit.SECONDS)); + randomStr.ifPresent(s -> redisTemplate.opsForValue() + .set(CacheConstants.DEFAULT_CODE_KEY + s, result, SecurityConstants.CODE_TIME, TimeUnit.SECONDS)); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); captcha.out(os); - return ServerResponse.status(HttpStatus.OK).contentType(MediaType.IMAGE_JPEG) - .body(BodyInserters.fromResource(new ByteArrayResource(os.toByteArray()))); + return ServerResponse.status(HttpStatus.OK) + .contentType(MediaType.IMAGE_JPEG) + .body(BodyInserters.fromResource(new ByteArrayResource(os.toByteArray()))); } } diff --git a/pig-register/src/main/java/com/alibaba/nacos/console/controller/HealthController.java b/pig-register/src/main/java/com/alibaba/nacos/console/controller/HealthController.java index 6799a0bce..2b088165d 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/console/controller/HealthController.java +++ b/pig-register/src/main/java/com/alibaba/nacos/console/controller/HealthController.java @@ -77,7 +77,7 @@ public class HealthController { if (!isConfigReadiness && !isNamingReadiness) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body("Config and Naming are not in readiness"); + .body("Config and Naming are not in readiness"); } if (!isConfigReadiness) { diff --git a/pig-register/src/main/java/com/alibaba/nacos/console/exception/ConsoleExceptionHandler.java b/pig-register/src/main/java/com/alibaba/nacos/console/exception/ConsoleExceptionHandler.java index 9dd2b2f4a..8b0d6fbdf 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/console/exception/ConsoleExceptionHandler.java +++ b/pig-register/src/main/java/com/alibaba/nacos/console/exception/ConsoleExceptionHandler.java @@ -57,7 +57,7 @@ public class ConsoleExceptionHandler { LOGGER.error("CONSOLE {}", uri, e); if (uri.contains(Commons.NACOS_SERVER_VERSION_V2)) { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(RestResultUtils.failed(ExceptionUtil.getAllExceptionMsg(e))); + .body(RestResultUtils.failed(ExceptionUtil.getAllExceptionMsg(e))); } return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(ExceptionUtil.getAllExceptionMsg(e)); } diff --git a/pig-register/src/main/java/com/alibaba/nacos/console/exception/NacosApiExceptionHandler.java b/pig-register/src/main/java/com/alibaba/nacos/console/exception/NacosApiExceptionHandler.java index c73e8f8e0..c704dd0f1 100644 --- a/pig-register/src/main/java/com/alibaba/nacos/console/exception/NacosApiExceptionHandler.java +++ b/pig-register/src/main/java/com/alibaba/nacos/console/exception/NacosApiExceptionHandler.java @@ -59,7 +59,7 @@ public class NacosApiExceptionHandler { public ResponseEntity> handleNacosApiException(NacosApiException e) { LOGGER.error("got exception. {} {}", e.getErrAbstract(), e.getErrMsg()); return ResponseEntity.status(e.getErrCode()) - .body(new Result<>(e.getDetailErrCode(), e.getErrAbstract(), e.getErrMsg())); + .body(new Result<>(e.getDetailErrCode(), e.getErrAbstract(), e.getErrMsg())); } @ExceptionHandler(NacosException.class) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java index 3c3623542..da5ab0184 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java @@ -76,7 +76,7 @@ public class DictController { @GetMapping("/page") public R> getDictPage(Page page, SysDict sysDict) { return R.ok(sysDictService.page(page, Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()))); + .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()))); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java index 96154d68d..2e327244b 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java @@ -65,7 +65,7 @@ public class FileController { @GetMapping("/page") public R> getSysFilePage(Page page, SysFile sysFile) { return R.ok(sysFileService.page(page, Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(sysFile.getFileName()), SysFile::getFileName, sysFile.getFileName()))); + .like(StrUtil.isNotBlank(sysFile.getFileName()), SysFile::getFileName, sysFile.getFileName()))); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java index 31d7c9681..0db7ba433 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java @@ -56,8 +56,11 @@ public class MenuController { @GetMapping public R>> getUserMenu(Long parentId) { // 获取符合条件的菜单 - Set menuSet = SecurityUtils.getRoles().stream().map(sysMenuService::findMenuByRoleId) - .flatMap(Collection::stream).collect(Collectors.toSet()); + Set menuSet = SecurityUtils.getRoles() + .stream() + .map(sysMenuService::findMenuByRoleId) + .flatMap(Collection::stream) + .collect(Collectors.toSet()); return R.ok(sysMenuService.filterMenu(menuSet, parentId)); } @@ -79,8 +82,8 @@ public class MenuController { */ @GetMapping("/tree/{roleId}") public R> getRoleTree(@PathVariable Long roleId) { - return R.ok( - sysMenuService.findMenuByRoleId(roleId).stream().map(SysMenu::getMenuId).collect(Collectors.toList())); + return R + .ok(sysMenuService.findMenuByRoleId(roleId).stream().map(SysMenu::getMenuId).collect(Collectors.toList())); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java index e21bfc6e4..52ec3bc85 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java @@ -59,7 +59,7 @@ public class OauthClientDetailsController { @GetMapping("/{clientId}") public R> getByClientId(@PathVariable String clientId) { return R.ok(sysOauthClientDetailsService - .list(Wrappers.lambdaQuery().eq(SysOauthClientDetails::getClientId, clientId))); + .list(Wrappers.lambdaQuery().eq(SysOauthClientDetails::getClientId, clientId))); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java index b9e23f77f..d6be57903 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java @@ -71,10 +71,10 @@ public class PublicParamController { public R getSysPublicParamPage(Page page, SysPublicParam sysPublicParam) { return R.ok(sysPublicParamService.page(page, Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(sysPublicParam.getPublicName()), SysPublicParam::getPublicName, - sysPublicParam.getPublicName()) - .like(StrUtil.isNotBlank(sysPublicParam.getPublicKey()), SysPublicParam::getPublicKey, - sysPublicParam.getPublicKey()))); + .like(StrUtil.isNotBlank(sysPublicParam.getPublicName()), SysPublicParam::getPublicName, + sysPublicParam.getPublicName()) + .like(StrUtil.isNotBlank(sysPublicParam.getPublicKey()), SysPublicParam::getPublicKey, + sysPublicParam.getPublicKey()))); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/AppServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/AppServiceImpl.java index 01e81a90d..a68246b54 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/AppServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/AppServiceImpl.java @@ -76,8 +76,8 @@ public class AppServiceImpl implements AppService { String code = RandomUtil.randomNumbers(Integer.parseInt(SecurityConstants.CODE_SIZE)); log.info("手机号生成验证码成功:{},{}", sms.getPhone(), code); - redisTemplate.opsForValue().set(CacheConstants.DEFAULT_CODE_KEY + sms.getPhone(), code, - SecurityConstants.CODE_TIME, TimeUnit.SECONDS); + redisTemplate.opsForValue() + .set(CacheConstants.DEFAULT_CODE_KEY + sms.getPhone(), code, SecurityConstants.CODE_TIME, TimeUnit.SECONDS); // 调用短信通道发送 this.smsClient.sendCode(code, sms.getPhone()); diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptRelationServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptRelationServiceImpl.java index f777a5858..3f077e3db 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptRelationServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptRelationServiceImpl.java @@ -55,10 +55,12 @@ public class SysDeptRelationServiceImpl extends ServiceImpl relationList = sysDeptRelationMapper.selectList( Wrappers.query().lambda().eq(SysDeptRelation::getDescendant, sysDept.getParentId())) - .stream().map(relation -> { - relation.setDescendant(sysDept.getDeptId()); - return relation; - }).collect(Collectors.toList()); + .stream() + .map(relation -> { + relation.setDescendant(sysDept.getDeptId()); + return relation; + }) + .collect(Collectors.toList()); if (CollUtil.isNotEmpty(relationList)) { this.saveBatch(relationList); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java index 029b3e81f..b141b4e3c 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java @@ -75,8 +75,10 @@ public class SysDeptServiceImpl extends ServiceImpl impl public Boolean removeDeptById(Long id) { // 级联删除部门 List idList = sysDeptRelationService - .list(Wrappers.query().lambda().eq(SysDeptRelation::getAncestor, id)).stream() - .map(SysDeptRelation::getDescendant).collect(Collectors.toList()); + .list(Wrappers.query().lambda().eq(SysDeptRelation::getAncestor, id)) + .stream() + .map(SysDeptRelation::getDescendant) + .collect(Collectors.toList()); if (CollUtil.isNotEmpty(idList)) { this.removeByIds(idList); @@ -108,7 +110,8 @@ public class SysDeptServiceImpl extends ServiceImpl impl @Override public List listChildDeptId(Long deptId) { List deptRelations = sysDeptRelationService.list(Wrappers.lambdaQuery() - .eq(SysDeptRelation::getAncestor, deptId).ne(SysDeptRelation::getDescendant, deptId)); + .eq(SysDeptRelation::getAncestor, deptId) + .ne(SysDeptRelation::getDescendant, deptId)); if (CollUtil.isNotEmpty(deptRelations)) { return deptRelations.stream().map(SysDeptRelation::getDescendant).collect(Collectors.toList()); } @@ -132,8 +135,10 @@ public class SysDeptServiceImpl extends ServiceImpl impl public List> listCurrentUserDeptTrees() { Long deptId = SecurityUtils.getUser().getDeptId(); List descendantIdList = sysDeptRelationService - .list(Wrappers.query().lambda().eq(SysDeptRelation::getAncestor, deptId)).stream() - .map(SysDeptRelation::getDescendant).collect(Collectors.toList()); + .list(Wrappers.query().lambda().eq(SysDeptRelation::getAncestor, deptId)) + .stream() + .map(SysDeptRelation::getDescendant) + .collect(Collectors.toList()); List deptList = baseMapper.selectBatchIds(descendantIdList); Optional dept = deptList.stream().filter(item -> item.getDeptId().intValue() == deptId).findFirst(); @@ -147,19 +152,22 @@ public class SysDeptServiceImpl extends ServiceImpl impl * @return */ private List> getDeptTree(List depts, Long parentId) { - List> collect = depts.stream().filter(dept -> dept.getDeptId().intValue() != dept.getParentId()) - .sorted(Comparator.comparingInt(SysDept::getSortOrder)).map(dept -> { - TreeNode treeNode = new TreeNode(); - treeNode.setId(dept.getDeptId()); - treeNode.setParentId(dept.getParentId()); - treeNode.setName(dept.getName()); - treeNode.setWeight(dept.getSortOrder()); - // 扩展属性 - Map extra = new HashMap<>(4); - extra.put("createTime", dept.getCreateTime()); - treeNode.setExtra(extra); - return treeNode; - }).collect(Collectors.toList()); + List> collect = depts.stream() + .filter(dept -> dept.getDeptId().intValue() != dept.getParentId()) + .sorted(Comparator.comparingInt(SysDept::getSortOrder)) + .map(dept -> { + TreeNode treeNode = new TreeNode(); + treeNode.setId(dept.getDeptId()); + treeNode.setParentId(dept.getParentId()); + treeNode.setName(dept.getName()); + treeNode.setWeight(dept.getSortOrder()); + // 扩展属性 + Map extra = new HashMap<>(4); + extra.put("createTime", dept.getCreateTime()); + treeNode.setExtra(extra); + return treeNode; + }) + .collect(Collectors.toList()); return TreeUtil.build(collect, parentId); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java index a88639f79..eb04d3f62 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysLogServiceImpl.java @@ -63,12 +63,12 @@ public class SysLogServiceImpl extends ServiceImpl impleme */ private LambdaQueryWrapper buildQueryWrapper(SysLogDTO sysLog) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery() - .eq(StrUtil.isNotBlank(sysLog.getType()), SysLog::getType, sysLog.getType()) - .like(StrUtil.isNotBlank(sysLog.getRemoteAddr()), SysLog::getRemoteAddr, sysLog.getRemoteAddr()); + .eq(StrUtil.isNotBlank(sysLog.getType()), SysLog::getType, sysLog.getType()) + .like(StrUtil.isNotBlank(sysLog.getRemoteAddr()), SysLog::getRemoteAddr, sysLog.getRemoteAddr()); if (ArrayUtil.isNotEmpty(sysLog.getCreateTime())) { - wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTime()[0]).le(SysLog::getCreateTime, - sysLog.getCreateTime()[1]); + wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTime()[0]) + .le(SysLog::getCreateTime, sysLog.getCreateTime()[1]); } return wrapper; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysMenuServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysMenuServiceImpl.java index 3eff49c58..22663d06a 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysMenuServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysMenuServiceImpl.java @@ -103,8 +103,10 @@ public class SysMenuServiceImpl extends ServiceImpl impl public List> treeMenu(boolean lazy, Long parentId) { if (!lazy) { List> collect = baseMapper - .selectList(Wrappers.lambdaQuery().orderByAsc(SysMenu::getSortOrder)).stream() - .map(getNodeFunction()).collect(Collectors.toList()); + .selectList(Wrappers.lambdaQuery().orderByAsc(SysMenu::getSortOrder)) + .stream() + .map(getNodeFunction()) + .collect(Collectors.toList()); return TreeUtil.build(collect, CommonConstants.MENU_TREE_ROOT_ID); } @@ -112,9 +114,11 @@ public class SysMenuServiceImpl extends ServiceImpl impl Long parent = parentId == null ? CommonConstants.MENU_TREE_ROOT_ID : parentId; List> collect = baseMapper - .selectList(Wrappers.lambdaQuery().eq(SysMenu::getParentId, parent) - .orderByAsc(SysMenu::getSortOrder)) - .stream().map(getNodeFunction()).collect(Collectors.toList()); + .selectList( + Wrappers.lambdaQuery().eq(SysMenu::getParentId, parent).orderByAsc(SysMenu::getSortOrder)) + .stream() + .map(getNodeFunction()) + .collect(Collectors.toList()); return TreeUtil.build(collect, parent); } @@ -128,8 +132,10 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override public List> filterMenu(Set all, Long parentId) { List> collect = all.stream() - .filter(menu -> MenuTypeEnum.LEFT_MENU.getType().equals(menu.getType())) - .filter(menu -> StrUtil.isNotBlank(menu.getPath())).map(getNodeFunction()).collect(Collectors.toList()); + .filter(menu -> MenuTypeEnum.LEFT_MENU.getType().equals(menu.getType())) + .filter(menu -> StrUtil.isNotBlank(menu.getPath())) + .map(getNodeFunction()) + .collect(Collectors.toList()); Long parent = parentId == null ? CommonConstants.MENU_TREE_ROOT_ID : parentId; return TreeUtil.build(collect, parent); } diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPostServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPostServiceImpl.java index b2231106e..925996a2e 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPostServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPostServiceImpl.java @@ -63,8 +63,9 @@ public class SysPostServiceImpl extends ServiceImpl impl for (PostExcelVO excel : excelVOList) { Set errorMsg = new HashSet<>(); // 检验岗位名称或者岗位编码是否存在 - boolean existPost = postList.stream().anyMatch(post -> excel.getPostName().equals(post.getPostName()) - || excel.getPostCode().equals(post.getPostCode())); + boolean existPost = postList.stream() + .anyMatch(post -> excel.getPostName().equals(post.getPostName()) + || excel.getPostCode().equals(post.getPostCode())); if (existPost) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_POST_NAMEORCODE_EXISTING, excel.getPostName(), diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPublicParamServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPublicParamServiceImpl.java index 7f9a37366..677065fd5 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPublicParamServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysPublicParamServiceImpl.java @@ -47,7 +47,7 @@ public class SysPublicParamServiceImpl extends ServiceImpllambdaQuery().eq(SysPublicParam::getPublicKey, publicKey)); + .selectOne(Wrappers.lambdaQuery().eq(SysPublicParam::getPublicKey, publicKey)); if (sysPublicParam != null) { return sysPublicParam.getPublicValue(); diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysRoleServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysRoleServiceImpl.java index 3d6c9f6f2..3af802c0a 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysRoleServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysRoleServiceImpl.java @@ -87,8 +87,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl for (RoleExcelVO excel : excelVOList) { Set errorMsg = new HashSet<>(); // 检验角色名称或者角色编码是否存在 - boolean existRole = roleList.stream().anyMatch(sysRole -> excel.getRoleName().equals(sysRole.getRoleName()) - || excel.getRoleCode().equals(sysRole.getRoleCode())); + boolean existRole = roleList.stream() + .anyMatch(sysRole -> excel.getRoleName().equals(sysRole.getRoleName()) + || excel.getRoleCode().equals(sysRole.getRoleCode())); if (existRole) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_ROLE_NAMEORCODE_EXISTING, excel.getRoleName(), diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java index b2b40166c..1dc22a87e 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java @@ -130,9 +130,13 @@ public class SysUserServiceImpl extends ServiceImpl impl List postList = sysPostMapper.listPostsByUserId(sysUser.getUserId()); userInfo.setPostList(postList); // 设置权限列表(menu.permission) - Set permissions = roleIds.stream().map(sysMenuService::findMenuByRoleId).flatMap(Collection::stream) - .filter(m -> MenuTypeEnum.BUTTON.getType().equals(m.getType())).map(SysMenu::getPermission) - .filter(StrUtil::isNotBlank).collect(Collectors.toSet()); + Set permissions = roleIds.stream() + .map(sysMenuService::findMenuByRoleId) + .flatMap(Collection::stream) + .filter(m -> MenuTypeEnum.BUTTON.getType().equals(m.getType())) + .map(SysMenu::getPermission) + .filter(StrUtil::isNotBlank) + .collect(Collectors.toSet()); userInfo.setPermissions(ArrayUtil.toArray(permissions, String.class)); return userInfo; @@ -213,7 +217,7 @@ public class SysUserServiceImpl extends ServiceImpl impl this.updateById(sysUser); sysUserRoleMapper - .delete(Wrappers.update().lambda().eq(SysUserRole::getUserId, userDto.getUserId())); + .delete(Wrappers.update().lambda().eq(SysUserRole::getUserId, userDto.getUserId())); userDto.getRole().forEach(roleId -> { SysUserRole userRole = new SysUserRole(); userRole.setUserId(sysUser.getUserId()); @@ -260,11 +264,15 @@ public class SysUserServiceImpl extends ServiceImpl impl List userExcelVOList = voList.stream().map(userVO -> { UserExcelVO excelVO = new UserExcelVO(); BeanUtils.copyProperties(userVO, excelVO); - String roleNameList = userVO.getRoleList().stream().map(SysRole::getRoleName) - .collect(Collectors.joining(StrUtil.COMMA)); + String roleNameList = userVO.getRoleList() + .stream() + .map(SysRole::getRoleName) + .collect(Collectors.joining(StrUtil.COMMA)); excelVO.setRoleNameList(roleNameList); - String postNameList = userVO.getPostList().stream().map(SysPost::getPostName) - .collect(Collectors.joining(StrUtil.COMMA)); + String postNameList = userVO.getPostList() + .stream() + .map(SysPost::getPostName) + .collect(Collectors.joining(StrUtil.COMMA)); excelVO.setPostNameList(postNameList); return excelVO; }).collect(Collectors.toList()); @@ -293,7 +301,7 @@ public class SysUserServiceImpl extends ServiceImpl impl Set errorMsg = new HashSet<>(); // 校验用户名是否存在 boolean exsitUserName = userList.stream() - .anyMatch(sysUser -> excel.getUsername().equals(sysUser.getUsername())); + .anyMatch(sysUser -> excel.getUsername().equals(sysUser.getUsername())); if (exsitUserName) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, excel.getUsername())); @@ -301,7 +309,8 @@ public class SysUserServiceImpl extends ServiceImpl impl // 判断输入的部门名称列表是否合法 Optional deptOptional = deptList.stream() - .filter(dept -> excel.getDeptName().equals(dept.getName())).findFirst(); + .filter(dept -> excel.getDeptName().equals(dept.getName())) + .findFirst(); if (!deptOptional.isPresent()) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_DEPT_DEPTNAME_INEXISTENCE, excel.getDeptName())); } @@ -309,8 +318,8 @@ public class SysUserServiceImpl extends ServiceImpl impl // 判断输入的角色名称列表是否合法 List roleNameList = StrUtil.split(excel.getRoleNameList(), StrUtil.COMMA); List roleCollList = roleList.stream() - .filter(role -> roleNameList.stream().anyMatch(name -> role.getRoleName().equals(name))) - .collect(Collectors.toList()); + .filter(role -> roleNameList.stream().anyMatch(name -> role.getRoleName().equals(name))) + .collect(Collectors.toList()); if (roleCollList.size() != roleNameList.size()) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_ROLE_ROLENAME_INEXISTENCE, excel.getRoleNameList())); @@ -319,8 +328,8 @@ public class SysUserServiceImpl extends ServiceImpl impl // 判断输入的岗位名称列表是否合法 List postNameList = StrUtil.split(excel.getPostNameList(), StrUtil.COMMA); List postCollList = postList.stream() - .filter(post -> postNameList.stream().anyMatch(name -> post.getPostName().equals(name))) - .collect(Collectors.toList()); + .filter(post -> postNameList.stream().anyMatch(name -> post.getPostName().equals(name))) + .collect(Collectors.toList()); if (postCollList.size() != postNameList.size()) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_POST_POSTNAME_INEXISTENCE, excel.getPostNameList())); @@ -393,7 +402,7 @@ public class SysUserServiceImpl extends ServiceImpl impl String defaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE"); // 默认角色 SysRole sysRole = sysRoleMapper - .selectOne(Wrappers.lambdaQuery().eq(SysRole::getRoleCode, defaultRole)); + .selectOne(Wrappers.lambdaQuery().eq(SysRole::getRoleCode, defaultRole)); if (sysRole == null) { return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_PARAM_CONFIG_ERROR, "USER_DEFAULT_ROLE")); diff --git a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GenDatasourceConfServiceImpl.java b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GenDatasourceConfServiceImpl.java index 7f3d5d2eb..8dc7da320 100755 --- a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GenDatasourceConfServiceImpl.java +++ b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GenDatasourceConfServiceImpl.java @@ -82,7 +82,7 @@ public class GenDatasourceConfServiceImpl extends ServiceImpllambdaQuery().eq(GenFormConf::getTableName, tableName) - .orderByDesc(GenFormConf::getCreateTime), false); + GenFormConf form = getOne(Wrappers.lambdaQuery() + .eq(GenFormConf::getTableName, tableName) + .orderByDesc(GenFormConf::getCreateTime), false); if (form != null) { return form.getFormInfo(); diff --git a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GeneratorServiceImpl.java b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GeneratorServiceImpl.java index 94b901bf9..9d65392a9 100755 --- a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GeneratorServiceImpl.java +++ b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/service/impl/GeneratorServiceImpl.java @@ -77,7 +77,8 @@ public class GeneratorServiceImpl implements GeneratorService { public Map previewCode(GenConfig genConfig) { // 根据tableName 查询最新的表单配置 List formConfList = genFormConfMapper.selectList(Wrappers.lambdaQuery() - .eq(GenFormConf::getTableName, genConfig.getTableName()).orderByDesc(GenFormConf::getCreateTime)); + .eq(GenFormConf::getTableName, genConfig.getTableName()) + .orderByDesc(GenFormConf::getCreateTime)); String tableNames = genConfig.getTableName(); String dsName = genConfig.getDsName(); @@ -111,7 +112,8 @@ public class GeneratorServiceImpl implements GeneratorService { public byte[] generatorCode(GenConfig genConfig) { // 根据tableName 查询最新的表单配置 List formConfList = genFormConfMapper.selectList(Wrappers.lambdaQuery() - .eq(GenFormConf::getTableName, genConfig.getTableName()).orderByDesc(GenFormConf::getCreateTime)); + .eq(GenFormConf::getTableName, genConfig.getTableName()) + .orderByDesc(GenFormConf::getCreateTime)); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ZipOutputStream zip = new ZipOutputStream(outputStream); diff --git a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/support/StyleTypeEnum.java b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/support/StyleTypeEnum.java index de5a7ffd2..3de92f7c1 100644 --- a/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/support/StyleTypeEnum.java +++ b/pig-visual/pig-codegen/src/main/java/com/pig4cloud/pig/codegen/support/StyleTypeEnum.java @@ -36,8 +36,11 @@ public enum StyleTypeEnum { private String description; public static String getDecs(String style) { - return Arrays.stream(StyleTypeEnum.values()).filter(styleTypeEnum -> styleTypeEnum.getStyle().equals(style)) - .findFirst().orElse(ELEMENT).getDescription(); + return Arrays.stream(StyleTypeEnum.values()) + .filter(styleTypeEnum -> styleTypeEnum.getStyle().equals(style)) + .findFirst() + .orElse(ELEMENT) + .getDescription(); } } diff --git a/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/config/WebSecurityConfigurer.java b/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/config/WebSecurityConfigurer.java index 316f9a781..1498b0d83 100755 --- a/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/config/WebSecurityConfigurer.java +++ b/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/config/WebSecurityConfigurer.java @@ -49,12 +49,28 @@ public class WebSecurityConfigurer { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("redirectTo"); successHandler.setDefaultTargetUrl(adminContextPath + "/"); - http.headers().frameOptions().disable().and().authorizeRequests() - .antMatchers(adminContextPath + "/assets/**", adminContextPath + "/login", - adminContextPath + "/instances/**", adminContextPath + "/actuator/**") - .permitAll().anyRequest().authenticated().and().formLogin().loginPage(adminContextPath + "/login") - .successHandler(successHandler).and().logout().logoutUrl(adminContextPath + "/logout").and().httpBasic() - .and().csrf().disable(); + http.headers() + .frameOptions() + .disable() + .and() + .authorizeRequests() + .antMatchers(adminContextPath + "/assets/**", adminContextPath + "/login", + adminContextPath + "/instances/**", adminContextPath + "/actuator/**") + .permitAll() + .anyRequest() + .authenticated() + .and() + .formLogin() + .loginPage(adminContextPath + "/login") + .successHandler(successHandler) + .and() + .logout() + .logoutUrl(adminContextPath + "/logout") + .and() + .httpBasic() + .and() + .csrf() + .disable(); return http.build(); } diff --git a/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/converter/NacosServiceInstanceConverter.java b/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/converter/NacosServiceInstanceConverter.java index 6298de211..d5a87bc1f 100644 --- a/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/converter/NacosServiceInstanceConverter.java +++ b/pig-visual/pig-monitor/src/main/java/com/pig4cloud/pig/monitor/converter/NacosServiceInstanceConverter.java @@ -20,10 +20,11 @@ public class NacosServiceInstanceConverter extends DefaultServiceInstanceConvert @Override protected Map getMetadata(ServiceInstance instance) { - return (instance.getMetadata() != null) - ? instance.getMetadata().entrySet().stream().filter((e) -> e.getKey() != null && e.getValue() != null) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)) - : emptyMap(); + return (instance.getMetadata() != null) ? instance.getMetadata() + .entrySet() + .stream() + .filter((e) -> e.getKey() != null && e.getValue() != null) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)) : emptyMap(); } } diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/DefaultLoginAuthenticationFilter.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/DefaultLoginAuthenticationFilter.java index b8a864deb..af8c6a3d4 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/DefaultLoginAuthenticationFilter.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/auth/DefaultLoginAuthenticationFilter.java @@ -88,7 +88,7 @@ public class DefaultLoginAuthenticationFilter implements LoginAuthenticationFilt // Exclude the urls which needn't auth boolean authFilterExcludeMatch = authFilterExcludeUrls.stream() - .anyMatch(authFilterExcludeUrl -> PATH_MATCHER.match(authFilterExcludeUrl, servletPath)); + .anyMatch(authFilterExcludeUrl -> PATH_MATCHER.match(authFilterExcludeUrl, servletPath)); if (authFilterExcludeMatch) { chain.doFilter(request, response); return; diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java index afeb58bb4..3cac7f994 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java @@ -87,7 +87,7 @@ public class SentinelApiClient { private static final String HTTP_HEADER_CONTENT_TYPE = "Content-Type"; private static final String HTTP_HEADER_CONTENT_TYPE_URLENCODED = ContentType.create(URLEncodedUtils.CONTENT_TYPE) - .toString(); + .toString(); private static final String RESOURCE_URL_PATH = "jsonTree"; @@ -143,8 +143,11 @@ public class SentinelApiClient { private AppManagement appManagement; public SentinelApiClient() { - IOReactorConfig ioConfig = IOReactorConfig.custom().setConnectTimeout(3000).setSoTimeout(10000) - .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2).build(); + IOReactorConfig ioConfig = IOReactorConfig.custom() + .setConnectTimeout(3000) + .setSoTimeout(10000) + .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2) + .build(); httpClient = HttpAsyncClients.custom().setRedirectStrategy(new DefaultRedirectStrategy() { @Override protected boolean isRedirectable(final String method) { @@ -164,10 +167,10 @@ public class SentinelApiClient { } protected boolean isSupportPost(String app, String ip, int port) { - return StringUtil.isNotEmpty(app) - && Optional.ofNullable(appManagement.getDetailApp(app)).flatMap(e -> e.getMachine(ip, port)) - .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version160))) - .orElse(false); + return StringUtil.isNotEmpty(app) && Optional.ofNullable(appManagement.getDetailApp(app)) + .flatMap(e -> e.getMachine(ip, port)) + .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version160))) + .orElse(false); } /** @@ -178,10 +181,10 @@ public class SentinelApiClient { * @param port target node's port */ protected boolean isSupportEnhancedContentType(String app, String ip, int port) { - return StringUtil.isNotEmpty(app) - && Optional.ofNullable(appManagement.getDetailApp(app)).flatMap(e -> e.getMachine(ip, port)) - .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version171))) - .orElse(false); + return StringUtil.isNotEmpty(app) && Optional.ofNullable(appManagement.getDetailApp(app)) + .flatMap(e -> e.getMachine(ip, port)) + .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version171))) + .orElse(false); } private StringBuilder queryString(Map params) { @@ -476,8 +479,9 @@ public class SentinelApiClient { public List fetchFlowRuleOfMachine(String app, String ip, int port) { List rules = fetchRules(ip, port, FLOW_RULE_TYPE, FlowRule.class); if (rules != null) { - return rules.stream().map(rule -> FlowRuleEntity.fromFlowRule(app, ip, port, rule)) - .collect(Collectors.toList()); + return rules.stream() + .map(rule -> FlowRuleEntity.fromFlowRule(app, ip, port, rule)) + .collect(Collectors.toList()); } else { return null; @@ -487,8 +491,9 @@ public class SentinelApiClient { public List fetchDegradeRuleOfMachine(String app, String ip, int port) { List rules = fetchRules(ip, port, DEGRADE_RULE_TYPE, DegradeRule.class); if (rules != null) { - return rules.stream().map(rule -> DegradeRuleEntity.fromDegradeRule(app, ip, port, rule)) - .collect(Collectors.toList()); + return rules.stream() + .map(rule -> DegradeRuleEntity.fromDegradeRule(app, ip, port, rule)) + .collect(Collectors.toList()); } else { return null; @@ -498,8 +503,9 @@ public class SentinelApiClient { public List fetchSystemRuleOfMachine(String app, String ip, int port) { List rules = fetchRules(ip, port, SYSTEM_RULE_TYPE, SystemRule.class); if (rules != null) { - return rules.stream().map(rule -> SystemRuleEntity.fromSystemRule(app, ip, port, rule)) - .collect(Collectors.toList()); + return rules.stream() + .map(rule -> SystemRuleEntity.fromSystemRule(app, ip, port, rule)) + .collect(Collectors.toList()); } else { return null; @@ -520,8 +526,9 @@ public class SentinelApiClient { AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); return fetchItemsAsync(ip, port, GET_PARAM_RULE_PATH, null, ParamFlowRule.class) - .thenApply(rules -> rules.stream().map(e -> ParamFlowRuleEntity.fromParamFlowRule(app, ip, port, e)) - .collect(Collectors.toList())); + .thenApply(rules -> rules.stream() + .map(e -> ParamFlowRuleEntity.fromParamFlowRule(app, ip, port, e)) + .collect(Collectors.toList())); } catch (Exception e) { logger.error("Error when fetching parameter flow rules", e); @@ -544,9 +551,11 @@ public class SentinelApiClient { Map params = new HashMap<>(1); params.put("type", AUTHORITY_TYPE); List rules = fetchRules(ip, port, AUTHORITY_TYPE, AuthorityRule.class); - return Optional.ofNullable(rules).map(r -> r.stream() - .map(e -> AuthorityRuleEntity.fromAuthorityRule(app, ip, port, e)).collect(Collectors.toList())) - .orElse(null); + return Optional.ofNullable(rules) + .map(r -> r.stream() + .map(e -> AuthorityRuleEntity.fromAuthorityRule(app, ip, port, e)) + .collect(Collectors.toList())) + .orElse(null); } /** @@ -607,7 +616,7 @@ public class SentinelApiClient { } try { String data = JSON - .toJSONString(rules.stream().map(ParamFlowRuleEntity::getRule).collect(Collectors.toList())); + .toJSONString(rules.stream().map(ParamFlowRuleEntity::getRule).collect(Collectors.toList())); Map params = new HashMap<>(1); params.put("data", data); return executeCommand(app, ip, port, SET_PARAM_RULE_PATH, params, true).thenCompose(e -> { @@ -634,7 +643,7 @@ public class SentinelApiClient { } try { return executeCommand(ip, port, FETCH_CLUSTER_MODE_PATH, false) - .thenApply(r -> JSON.parseObject(r, ClusterStateSimpleEntity.class)); + .thenApply(r -> JSON.parseObject(r, ClusterStateSimpleEntity.class)); } catch (Exception ex) { logger.warn("Error when fetching cluster mode", ex); @@ -671,7 +680,7 @@ public class SentinelApiClient { } try { return executeCommand(ip, port, FETCH_CLUSTER_CLIENT_CONFIG_PATH, false) - .thenApply(r -> JSON.parseObject(r, ClusterClientInfoVO.class)); + .thenApply(r -> JSON.parseObject(r, ClusterClientInfoVO.class)); } catch (Exception ex) { logger.warn("Error when fetching cluster client config", ex); @@ -712,15 +721,15 @@ public class SentinelApiClient { Map params = new HashMap<>(1); params.put("data", JSON.toJSONString(config)); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_FLOW_CONFIG_PATH, params, true) - .thenCompose(e -> { - if (CommandConstants.MSG_SUCCESS.equals(e)) { - return CompletableFuture.completedFuture(null); - } - else { - logger.warn("Error when modifying cluster server flow config: " + e); - return AsyncUtils.newFailedFuture(new RuntimeException(e)); - } - }); + .thenCompose(e -> { + if (CommandConstants.MSG_SUCCESS.equals(e)) { + return CompletableFuture.completedFuture(null); + } + else { + logger.warn("Error when modifying cluster server flow config: " + e); + return AsyncUtils.newFailedFuture(new RuntimeException(e)); + } + }); } catch (Exception ex) { logger.warn("Error when modifying cluster server flow config", ex); @@ -738,15 +747,15 @@ public class SentinelApiClient { params.put("port", config.getPort().toString()); params.put("idleSeconds", config.getIdleSeconds().toString()); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_TRANSPORT_CONFIG_PATH, params, false) - .thenCompose(e -> { - if (CommandConstants.MSG_SUCCESS.equals(e)) { - return CompletableFuture.completedFuture(null); - } - else { - logger.warn("Error when modifying cluster server transport config: " + e); - return AsyncUtils.newFailedFuture(new RuntimeException(e)); - } - }); + .thenCompose(e -> { + if (CommandConstants.MSG_SUCCESS.equals(e)) { + return CompletableFuture.completedFuture(null); + } + else { + logger.warn("Error when modifying cluster server transport config: " + e); + return AsyncUtils.newFailedFuture(new RuntimeException(e)); + } + }); } catch (Exception ex) { logger.warn("Error when modifying cluster server transport config", ex); @@ -762,15 +771,15 @@ public class SentinelApiClient { Map params = new HashMap<>(1); params.put("data", JSON.toJSONString(set)); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_NAMESPACE_SET_PATH, params, true) - .thenCompose(e -> { - if (CommandConstants.MSG_SUCCESS.equals(e)) { - return CompletableFuture.completedFuture(null); - } - else { - logger.warn("Error when modifying cluster server NamespaceSet", e); - return AsyncUtils.newFailedFuture(new RuntimeException(e)); - } - }); + .thenCompose(e -> { + if (CommandConstants.MSG_SUCCESS.equals(e)) { + return CompletableFuture.completedFuture(null); + } + else { + logger.warn("Error when modifying cluster server NamespaceSet", e); + return AsyncUtils.newFailedFuture(new RuntimeException(e)); + } + }); } catch (Exception ex) { logger.warn("Error when modifying cluster server NamespaceSet", ex); @@ -784,7 +793,7 @@ public class SentinelApiClient { } try { return executeCommand(ip, port, FETCH_CLUSTER_SERVER_BASIC_INFO_PATH, false) - .thenApply(r -> JSON.parseObject(r, ClusterServerStateVO.class)); + .thenApply(r -> JSON.parseObject(r, ClusterServerStateVO.class)); } catch (Exception ex) { logger.warn("Error when fetching cluster sever all config and basic info", ex); @@ -847,8 +856,8 @@ public class SentinelApiClient { return executeCommand(ip, port, FETCH_GATEWAY_FLOW_RULE_PATH, false).thenApply(r -> { List gatewayFlowRules = JSON.parseArray(r, GatewayFlowRule.class); List entities = gatewayFlowRules.stream() - .map(rule -> GatewayFlowRuleEntity.fromGatewayFlowRule(app, ip, port, rule)) - .collect(Collectors.toList()); + .map(rule -> GatewayFlowRuleEntity.fromGatewayFlowRule(app, ip, port, rule)) + .collect(Collectors.toList()); return entities; }); } @@ -868,7 +877,7 @@ public class SentinelApiClient { AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); String data = JSON - .toJSONString(rules.stream().map(r -> r.toGatewayFlowRule()).collect(Collectors.toList())); + .toJSONString(rules.stream().map(r -> r.toGatewayFlowRule()).collect(Collectors.toList())); Map params = new HashMap<>(2); params.put("data", data); String result = executeCommand(app, ip, port, MODIFY_GATEWAY_FLOW_RULE_PATH, params, true).get(); diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java index b372453bb..1efc019ed 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/AppController.java @@ -58,8 +58,10 @@ public class AppController { return Result.ofSuccess(null); } List list = new ArrayList<>(appInfo.getMachines()); - Collections.sort(list, Comparator.comparing(MachineInfo::getApp).thenComparing(MachineInfo::getIp) - .thenComparingInt(MachineInfo::getPort)); + Collections.sort(list, + Comparator.comparing(MachineInfo::getApp) + .thenComparing(MachineInfo::getIp) + .thenComparingInt(MachineInfo::getPort)); return Result.ofSuccess(MachineInfoVo.fromMachineInfoList(list)); } diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java index f81d64cd9..72ddaf3b9 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ParamFlowRuleController.java @@ -60,9 +60,10 @@ public class ParamFlowRuleController { private boolean checkIfSupported(String app, String ip, int port) { try { - return Optional.ofNullable(appManagement.getDetailApp(app)).flatMap(e -> e.getMachine(ip, port)) - .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version020))) - .orElse(true); + return Optional.ofNullable(appManagement.getDetailApp(app)) + .flatMap(e -> e.getMachine(ip, port)) + .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version020))) + .orElse(true); // If error occurred or cannot retrieve machine info, return true. } catch (Exception ex) { @@ -87,8 +88,10 @@ public class ParamFlowRuleController { return unsupportedVersion(); } try { - return sentinelApiClient.fetchParamFlowRulesOfMachine(app, ip, port).thenApply(repository::saveAll) - .thenApply(Result::ofSuccess).get(); + return sentinelApiClient.fetchParamFlowRulesOfMachine(app, ip, port) + .thenApply(repository::saveAll) + .thenApply(Result::ofSuccess) + .get(); } catch (ExecutionException ex) { logger.error("Error when querying parameter flow rules", ex.getCause()); diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java index ad9148c60..c342d5460 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/ResourceController.java @@ -81,8 +81,8 @@ public class ResourceController { } if (StringUtil.isNotEmpty(searchKey)) { nodeVos = nodeVos.stream() - .filter(node -> node.getResource().toLowerCase().contains(searchKey.toLowerCase())) - .collect(Collectors.toList()); + .filter(node -> node.getResource().toLowerCase().contains(searchKey.toLowerCase())) + .collect(Collectors.toList()); } return Result.ofSuccess(ResourceVo.fromNodeVoList(nodeVos)); } diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java index e967900b8..d15dee282 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/cluster/ClusterConfigController.java @@ -147,7 +147,9 @@ public class ClusterConfigController { } try { return clusterConfigService.getClusterUniversalState(app) - .thenApply(ClusterEntityUtils::wrapToAppClusterServerState).thenApply(Result::ofSuccess).get(); + .thenApply(ClusterEntityUtils::wrapToAppClusterServerState) + .thenApply(Result::ofSuccess) + .get(); } catch (ExecutionException ex) { logger.error("Error when fetching cluster server state of app: " + app, ex.getCause()); @@ -166,7 +168,9 @@ public class ClusterConfigController { } try { return clusterConfigService.getClusterUniversalState(app) - .thenApply(ClusterEntityUtils::wrapToAppClusterClientState).thenApply(Result::ofSuccess).get(); + .thenApply(ClusterEntityUtils::wrapToAppClusterClientState) + .thenApply(Result::ofSuccess) + .get(); } catch (ExecutionException ex) { logger.error("Error when fetching cluster token client state of app: " + app, ex.getCause()); @@ -202,9 +206,10 @@ public class ClusterConfigController { private boolean checkIfSupported(String app, String ip, int port) { try { - return Optional.ofNullable(appManagement.getDetailApp(app)).flatMap(e -> e.getMachine(ip, port)) - .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version140))) - .orElse(true); + return Optional.ofNullable(appManagement.getDetailApp(app)) + .flatMap(e -> e.getMachine(ip, port)) + .flatMap(m -> VersionUtils.parseVersion(m.getVersion()).map(v -> v.greaterOrEqual(version140))) + .orElse(true); // If error occurred or cannot retrieve machine info, return true. } catch (Exception ex) { diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayApiController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayApiController.java index 32e188827..9415b577e 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayApiController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayApiController.java @@ -125,7 +125,7 @@ public class GatewayApiController { // 匹配模式 Integer matchStrategy = predicateItem.getMatchStrategy(); if (!Arrays.asList(URL_MATCH_STRATEGY_EXACT, URL_MATCH_STRATEGY_PREFIX, URL_MATCH_STRATEGY_REGEX) - .contains(matchStrategy)) { + .contains(matchStrategy)) { return Result.ofFail(-1, "invalid matchStrategy: " + matchStrategy); } predicateItemEntity.setMatchStrategy(matchStrategy); @@ -197,7 +197,7 @@ public class GatewayApiController { // 匹配模式 int matchStrategy = predicateItem.getMatchStrategy(); if (!Arrays.asList(URL_MATCH_STRATEGY_EXACT, URL_MATCH_STRATEGY_PREFIX, URL_MATCH_STRATEGY_REGEX) - .contains(matchStrategy)) { + .contains(matchStrategy)) { return Result.ofFail(-1, "Invalid matchStrategy: " + matchStrategy); } predicateItemEntity.setMatchStrategy(matchStrategy); diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayFlowRuleController.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayFlowRuleController.java index 016d4f396..5a9907c40 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayFlowRuleController.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/controller/gateway/GatewayFlowRuleController.java @@ -132,15 +132,17 @@ public class GatewayFlowRuleController { // 参数属性 0-ClientIP 1-Remote Host 2-Header 3-URL参数 4-Cookie Integer parseStrategy = paramItem.getParseStrategy(); - if (!Arrays.asList(PARAM_PARSE_STRATEGY_CLIENT_IP, PARAM_PARSE_STRATEGY_HOST, PARAM_PARSE_STRATEGY_HEADER, - PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE).contains(parseStrategy)) { + if (!Arrays + .asList(PARAM_PARSE_STRATEGY_CLIENT_IP, PARAM_PARSE_STRATEGY_HOST, PARAM_PARSE_STRATEGY_HEADER, + PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE) + .contains(parseStrategy)) { return Result.ofFail(-1, "invalid parseStrategy: " + parseStrategy); } itemEntity.setParseStrategy(paramItem.getParseStrategy()); // 当参数属性为2-Header 3-URL参数 4-Cookie时,参数名称必填 if (Arrays.asList(PARAM_PARSE_STRATEGY_HEADER, PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE) - .contains(parseStrategy)) { + .contains(parseStrategy)) { // 参数名称 String fieldName = paramItem.getFieldName(); if (StringUtil.isBlank(fieldName)) { @@ -155,8 +157,8 @@ public class GatewayFlowRuleController { itemEntity.setPattern(pattern); Integer matchStrategy = paramItem.getMatchStrategy(); if (!Arrays - .asList(PARAM_MATCH_STRATEGY_EXACT, PARAM_MATCH_STRATEGY_CONTAINS, PARAM_MATCH_STRATEGY_REGEX) - .contains(matchStrategy)) { + .asList(PARAM_MATCH_STRATEGY_EXACT, PARAM_MATCH_STRATEGY_CONTAINS, PARAM_MATCH_STRATEGY_REGEX) + .contains(matchStrategy)) { return Result.ofFail(-1, "invalid matchStrategy: " + matchStrategy); } itemEntity.setMatchStrategy(matchStrategy); @@ -199,7 +201,7 @@ public class GatewayFlowRuleController { return Result.ofFail(-1, "intervalUnit can't be null"); } if (!Arrays.asList(INTERVAL_UNIT_SECOND, INTERVAL_UNIT_MINUTE, INTERVAL_UNIT_HOUR, INTERVAL_UNIT_DAY) - .contains(intervalUnit)) { + .contains(intervalUnit)) { return Result.ofFail(-1, "Invalid intervalUnit: " + intervalUnit); } entity.setIntervalUnit(intervalUnit); @@ -283,15 +285,17 @@ public class GatewayFlowRuleController { // 参数属性 0-ClientIP 1-Remote Host 2-Header 3-URL参数 4-Cookie Integer parseStrategy = paramItem.getParseStrategy(); - if (!Arrays.asList(PARAM_PARSE_STRATEGY_CLIENT_IP, PARAM_PARSE_STRATEGY_HOST, PARAM_PARSE_STRATEGY_HEADER, - PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE).contains(parseStrategy)) { + if (!Arrays + .asList(PARAM_PARSE_STRATEGY_CLIENT_IP, PARAM_PARSE_STRATEGY_HOST, PARAM_PARSE_STRATEGY_HEADER, + PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE) + .contains(parseStrategy)) { return Result.ofFail(-1, "invalid parseStrategy: " + parseStrategy); } itemEntity.setParseStrategy(paramItem.getParseStrategy()); // 当参数属性为2-Header 3-URL参数 4-Cookie时,参数名称必填 if (Arrays.asList(PARAM_PARSE_STRATEGY_HEADER, PARAM_PARSE_STRATEGY_URL_PARAM, PARAM_PARSE_STRATEGY_COOKIE) - .contains(parseStrategy)) { + .contains(parseStrategy)) { // 参数名称 String fieldName = paramItem.getFieldName(); if (StringUtil.isBlank(fieldName)) { @@ -306,8 +310,8 @@ public class GatewayFlowRuleController { itemEntity.setPattern(pattern); Integer matchStrategy = paramItem.getMatchStrategy(); if (!Arrays - .asList(PARAM_MATCH_STRATEGY_EXACT, PARAM_MATCH_STRATEGY_CONTAINS, PARAM_MATCH_STRATEGY_REGEX) - .contains(matchStrategy)) { + .asList(PARAM_MATCH_STRATEGY_EXACT, PARAM_MATCH_STRATEGY_CONTAINS, PARAM_MATCH_STRATEGY_REGEX) + .contains(matchStrategy)) { return Result.ofFail(-1, "invalid matchStrategy: " + matchStrategy); } itemEntity.setMatchStrategy(matchStrategy); @@ -353,7 +357,7 @@ public class GatewayFlowRuleController { return Result.ofFail(-1, "intervalUnit can't be null"); } if (!Arrays.asList(INTERVAL_UNIT_SECOND, INTERVAL_UNIT_MINUTE, INTERVAL_UNIT_HOUR, INTERVAL_UNIT_DAY) - .contains(intervalUnit)) { + .contains(intervalUnit)) { return Result.ofFail(-1, "Invalid intervalUnit: " + intervalUnit); } entity.setIntervalUnit(intervalUnit); diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java index 463412c83..33bfc2bb7 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/AppInfo.java @@ -98,8 +98,10 @@ public class AppInfo { long healthyCount = machines.stream().filter(MachineInfo::isHealthy).count(); if (healthyCount == 0) { // No healthy machines. - return machines.stream().max(Comparator.comparingLong(MachineInfo::getLastHeartbeat)) - .map(e -> System.currentTimeMillis() - e.getLastHeartbeat() < threshold).orElse(false); + return machines.stream() + .max(Comparator.comparingLong(MachineInfo::getLastHeartbeat)) + .map(e -> System.currentTimeMillis() - e.getLastHeartbeat() < threshold) + .orElse(false); } } return true; diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java index 2b4a080bc..357ed599f 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/discovery/MachineInfo.java @@ -151,11 +151,31 @@ public class MachineInfo implements Comparable { @Override public String toString() { - return new StringBuilder("MachineInfo {").append("app='").append(app).append('\'').append(",appType='") - .append(appType).append('\'').append(", hostname='").append(hostname).append('\'').append(", ip='") - .append(ip).append('\'').append(", port=").append(port).append(", heartbeatVersion=") - .append(heartbeatVersion).append(", lastHeartbeat=").append(lastHeartbeat).append(", version='") - .append(version).append('\'').append(", healthy=").append(isHealthy()).append('}').toString(); + return new StringBuilder("MachineInfo {").append("app='") + .append(app) + .append('\'') + .append(",appType='") + .append(appType) + .append('\'') + .append(", hostname='") + .append(hostname) + .append('\'') + .append(", ip='") + .append(ip) + .append('\'') + .append(", port=") + .append(port) + .append(", heartbeatVersion=") + .append(heartbeatVersion) + .append(", lastHeartbeat=") + .append(lastHeartbeat) + .append(", version='") + .append(version) + .append('\'') + .append(", healthy=") + .append(isHealthy()) + .append('}') + .toString(); } @Override diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java index ec42af53b..2b4cc7887 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/metric/MetricFetcher.java @@ -101,8 +101,11 @@ public class MetricFetcher { fetchWorker = new ThreadPoolExecutor(cores, cores, keepAliveTime, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(queueSize), new NamedThreadFactory("sentinel-dashboard-metrics-fetchWorker", true), handler); - IOReactorConfig ioConfig = IOReactorConfig.custom().setConnectTimeout(3000).setSoTimeout(3000) - .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2).build(); + IOReactorConfig ioConfig = IOReactorConfig.custom() + .setConnectTimeout(3000) + .setSoTimeout(3000) + .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2) + .build(); httpclient = HttpAsyncClients.custom().setRedirectStrategy(new DefaultRedirectStrategy() { @Override diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepository.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepository.java index 684ffc2c0..7968851a8 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepository.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/metric/InMemoryMetricsRepository.java @@ -52,14 +52,15 @@ public class InMemoryMetricsRepository implements MetricsRepository new HashMap<>(16)) - .computeIfAbsent(entity.getResource(), e -> new LinkedHashMap() { - @Override - protected boolean removeEldestEntry(Entry eldest) { - // Metric older than {@link #MAX_METRIC_LIVE_TIME_MS} will be - // removed. - return eldest.getKey() < TimeUtil.currentTimeMillis() - MAX_METRIC_LIVE_TIME_MS; - } - }).put(entity.getTimestamp().getTime(), entity); + .computeIfAbsent(entity.getResource(), e -> new LinkedHashMap() { + @Override + protected boolean removeEldestEntry(Entry eldest) { + // Metric older than {@link #MAX_METRIC_LIVE_TIME_MS} will be + // removed. + return eldest.getKey() < TimeUtil.currentTimeMillis() - MAX_METRIC_LIVE_TIME_MS; + } + }) + .put(entity.getTimestamp().getTime(), entity); } finally { readWriteLock.writeLock().unlock(); diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemoryRuleRepositoryAdapter.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemoryRuleRepositoryAdapter.java index 2e6e15cf7..d3be5f88b 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemoryRuleRepositoryAdapter.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/repository/rule/InMemoryRuleRepositoryAdapter.java @@ -49,11 +49,12 @@ public abstract class InMemoryRuleRepositoryAdapter implem if (processedEntity != null) { allRules.put(processedEntity.getId(), processedEntity); machineRules - .computeIfAbsent(MachineInfo.of(processedEntity.getApp(), processedEntity.getIp(), - processedEntity.getPort()), e -> new ConcurrentHashMap<>(32)) - .put(processedEntity.getId(), processedEntity); + .computeIfAbsent( + MachineInfo.of(processedEntity.getApp(), processedEntity.getIp(), processedEntity.getPort()), + e -> new ConcurrentHashMap<>(32)) + .put(processedEntity.getId(), processedEntity); appRules.computeIfAbsent(processedEntity.getApp(), v -> new ConcurrentHashMap<>(32)) - .put(processedEntity.getId(), processedEntity); + .put(processedEntity.getId(), processedEntity); } return processedEntity; diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiProvider.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiProvider.java index c5bf9fc8c..eabafdd2b 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiProvider.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/FlowRuleApiProvider.java @@ -44,10 +44,12 @@ public class FlowRuleApiProvider implements DynamicRuleProvider(); } - List list = appManagement.getDetailApp(appName).getMachines().stream() - .filter(MachineInfo::isHealthy) - .sorted((e1, e2) -> Long.compare(e2.getLastHeartbeat(), e1.getLastHeartbeat())) - .collect(Collectors.toList()); + List list = appManagement.getDetailApp(appName) + .getMachines() + .stream() + .filter(MachineInfo::isHealthy) + .sorted((e1, e2) -> Long.compare(e2.getLastHeartbeat(), e1.getLastHeartbeat())) + .collect(Collectors.toList()); if (list.isEmpty()) { return new ArrayList<>(); } diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignServiceImpl.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignServiceImpl.java index 1635e8d61..53a046af6 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignServiceImpl.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterAssignServiceImpl.java @@ -60,13 +60,14 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { private ClusterAppAssignResultVO handleUnbindClusterServerNotInApp(String app, String machineId) { Set failedSet = new HashSet<>(); try { - List list = clusterConfigService.getClusterUniversalState(app).get(10, - TimeUnit.SECONDS); + List list = clusterConfigService.getClusterUniversalState(app) + .get(10, TimeUnit.SECONDS); Set toModifySet = list.stream() - .filter(e -> e.getState().getStateInfo().getMode() == ClusterStateManager.CLUSTER_CLIENT) - .filter(e -> machineId.equals(e.getState().getClient().getClientConfig().getServerHost() + ':' - + e.getState().getClient().getClientConfig().getServerPort())) - .map(e -> e.getIp() + '@' + e.getCommandPort()).collect(Collectors.toSet()); + .filter(e -> e.getState().getStateInfo().getMode() == ClusterStateManager.CLUSTER_CLIENT) + .filter(e -> machineId.equals(e.getState().getClient().getClientConfig().getServerHost() + ':' + + e.getState().getClient().getClientConfig().getServerPort())) + .map(e -> e.getIp() + '@' + e.getCommandPort()) + .collect(Collectors.toSet()); // Modify mode to NOT-STARTED for all associated token clients. modifyToNonStarted(toModifySet, failedSet); } @@ -79,11 +80,15 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { } private void modifyToNonStarted(Set toModifySet, Set failedSet) { - toModifySet.parallelStream().map(MachineUtils::parseCommandIpAndPort).filter(Optional::isPresent) - .map(Optional::get).map(e -> { - CompletableFuture f = modifyMode(e.r1, e.r2, ClusterStateManager.CLUSTER_NOT_STARTED); - return Tuple2.of(e.r1 + '@' + e.r2, f); - }).forEach(f -> handleFutureSync(f, failedSet)); + toModifySet.parallelStream() + .map(MachineUtils::parseCommandIpAndPort) + .filter(Optional::isPresent) + .map(Optional::get) + .map(e -> { + CompletableFuture f = modifyMode(e.r1, e.r2, ClusterStateManager.CLUSTER_NOT_STARTED); + return Tuple2.of(e.r1 + '@' + e.r2, f); + }) + .forEach(f -> handleFutureSync(f, failedSet)); } @Override @@ -97,7 +102,7 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { Set failedSet = new HashSet<>(); try { ClusterGroupEntity entity = clusterConfigService.getClusterUniversalStateForAppMachine(app, machineId) - .get(10, TimeUnit.SECONDS); + .get(10, TimeUnit.SECONDS); Set toModifySet = new HashSet<>(); toModifySet.add(machineId); if (entity.getClientSet() != null) { @@ -120,7 +125,7 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { AssertUtil.assertNotBlank(app, "app cannot be blank"); AssertUtil.isTrue(machineIdSet != null && !machineIdSet.isEmpty(), "machineIdSet cannot be empty"); ClusterAppAssignResultVO result = new ClusterAppAssignResultVO().setFailedClientSet(new HashSet<>()) - .setFailedServerSet(new HashSet<>()); + .setFailedServerSet(new HashSet<>()); for (String machineId : machineIdSet) { ClusterAppAssignResultVO resultVO = unbindClusterServer(app, machineId); result.getFailedClientSet().addAll(resultVO.getFailedClientSet()); @@ -142,13 +147,14 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { String ip = e.getIp(); int commandPort = parsePort(e); CompletableFuture f = modifyMode(ip, commandPort, ClusterStateManager.CLUSTER_SERVER) - .thenCompose(v -> applyServerConfigChange(app, ip, commandPort, e)); + .thenCompose(v -> applyServerConfigChange(app, ip, commandPort, e)); return Tuple2.of(e.getMachineId(), f); }).forEach(t -> handleFutureSync(t, failedServerSet)); // Assign client of servers and apply config. - clusterMap.parallelStream().filter(Objects::nonNull) - .forEach(e -> applyAllClientConfigChange(app, e, failedClientSet)); + clusterMap.parallelStream() + .filter(Objects::nonNull) + .forEach(e -> applyAllClientConfigChange(app, e, failedClientSet)); // Unbind remaining (unassigned) machines. applyAllRemainingMachineSet(app, remainingSet, failedClientSet); @@ -160,13 +166,18 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { if (remainingSet == null || remainingSet.isEmpty()) { return; } - remainingSet.parallelStream().filter(Objects::nonNull).map(MachineUtils::parseCommandIpAndPort) - .filter(Optional::isPresent).map(Optional::get).map(ipPort -> { - String ip = ipPort.r1; - int commandPort = ipPort.r2; - CompletableFuture f = modifyMode(ip, commandPort, ClusterStateManager.CLUSTER_NOT_STARTED); - return Tuple2.of(ip + '@' + commandPort, f); - }).forEach(t -> handleFutureSync(t, failedSet)); + remainingSet.parallelStream() + .filter(Objects::nonNull) + .map(MachineUtils::parseCommandIpAndPort) + .filter(Optional::isPresent) + .map(Optional::get) + .map(ipPort -> { + String ip = ipPort.r1; + int commandPort = ipPort.r2; + CompletableFuture f = modifyMode(ip, commandPort, ClusterStateManager.CLUSTER_NOT_STARTED); + return Tuple2.of(ip + '@' + commandPort, f); + }) + .forEach(t -> handleFutureSync(t, failedSet)); } private void applyAllClientConfigChange(String app, ClusterAppAssignMap assignMap, Set failedSet) { @@ -176,15 +187,20 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { } final String serverIp = assignMap.getIp(); final int serverPort = assignMap.getPort(); - clientSet.stream().map(MachineUtils::parseCommandIpAndPort).filter(Optional::isPresent).map(Optional::get) - .map(ipPort -> { - CompletableFuture f = sentinelApiClient - .modifyClusterMode(ipPort.r1, ipPort.r2, ClusterStateManager.CLUSTER_CLIENT) - .thenCompose(v -> sentinelApiClient.modifyClusterClientConfig(app, ipPort.r1, ipPort.r2, - new ClusterClientConfig().setRequestTimeout(20).setServerHost(serverIp) - .setServerPort(serverPort))); - return Tuple2.of(ipPort.r1 + '@' + ipPort.r2, f); - }).forEach(t -> handleFutureSync(t, failedSet)); + clientSet.stream() + .map(MachineUtils::parseCommandIpAndPort) + .filter(Optional::isPresent) + .map(Optional::get) + .map(ipPort -> { + CompletableFuture f = sentinelApiClient + .modifyClusterMode(ipPort.r1, ipPort.r2, ClusterStateManager.CLUSTER_CLIENT) + .thenCompose(v -> sentinelApiClient.modifyClusterClientConfig(app, ipPort.r1, ipPort.r2, + new ClusterClientConfig().setRequestTimeout(20) + .setServerHost(serverIp) + .setServerPort(serverPort))); + return Tuple2.of(ipPort.r1 + '@' + ipPort.r2, f); + }) + .forEach(t -> handleFutureSync(t, failedSet)); } private void handleFutureSync(Tuple2> t, Set failedSet) { @@ -205,10 +221,10 @@ public class ClusterAssignServiceImpl implements ClusterAssignService { private CompletableFuture applyServerConfigChange(String app, String ip, int commandPort, ClusterAppAssignMap assignMap) { ServerTransportConfig transportConfig = new ServerTransportConfig().setPort(assignMap.getPort()) - .setIdleSeconds(600); + .setIdleSeconds(600); return sentinelApiClient.modifyClusterServerTransportConfig(app, ip, commandPort, transportConfig) - .thenCompose(v -> applyServerFlowConfigChange(app, ip, commandPort, assignMap)) - .thenCompose(v -> applyServerNamespaceSetConfig(app, ip, commandPort, assignMap)); + .thenCompose(v -> applyServerFlowConfigChange(app, ip, commandPort, assignMap)) + .thenCompose(v -> applyServerNamespaceSetConfig(app, ip, commandPort, assignMap)); } private CompletableFuture applyServerFlowConfigChange(String app, String ip, int commandPort, diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterConfigService.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterConfigService.java index d1cf10ffd..d88506316 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterConfigService.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/service/ClusterConfigService.java @@ -61,7 +61,7 @@ public class ClusterConfigService { String ip = request.getIp(); int port = request.getPort(); return sentinelApiClient.modifyClusterClientConfig(app, ip, port, request.getClientConfig()) - .thenCompose(v -> sentinelApiClient.modifyClusterMode(ip, port, ClusterStateManager.CLUSTER_CLIENT)); + .thenCompose(v -> sentinelApiClient.modifyClusterMode(ip, port, ClusterStateManager.CLUSTER_CLIENT)); } private boolean notClientRequestValid(/* @NonNull */ ClusterClientModifyRequest request) { @@ -87,9 +87,9 @@ public class ClusterConfigService { String ip = request.getIp(); int port = request.getPort(); return sentinelApiClient.modifyClusterServerNamespaceSet(app, ip, port, namespaceSet) - .thenCompose(v -> sentinelApiClient.modifyClusterServerTransportConfig(app, ip, port, transportConfig)) - .thenCompose(v -> sentinelApiClient.modifyClusterServerFlowConfig(app, ip, port, flowConfig)) - .thenCompose(v -> sentinelApiClient.modifyClusterMode(ip, port, ClusterStateManager.CLUSTER_SERVER)); + .thenCompose(v -> sentinelApiClient.modifyClusterServerTransportConfig(app, ip, port, transportConfig)) + .thenCompose(v -> sentinelApiClient.modifyClusterServerFlowConfig(app, ip, port, flowConfig)) + .thenCompose(v -> sentinelApiClient.modifyClusterMode(ip, port, ClusterStateManager.CLUSTER_SERVER)); } /** @@ -107,11 +107,12 @@ public class ClusterConfigService { return CompletableFuture.completedFuture(new ArrayList<>()); } - List> futures = appInfo.getMachines().stream() - .filter(e -> e.isHealthy()) - .map(machine -> getClusterUniversalState(app, machine.getIp(), machine.getPort()) - .thenApply(e -> new ClusterUniversalStatePairVO(machine.getIp(), machine.getPort(), e))) - .collect(Collectors.toList()); + List> futures = appInfo.getMachines() + .stream() + .filter(e -> e.isHealthy()) + .map(machine -> getClusterUniversalState(app, machine.getIp(), machine.getPort()) + .thenApply(e -> new ClusterUniversalStatePairVO(machine.getIp(), machine.getPort(), e))) + .collect(Collectors.toList()); return AsyncUtils.sequenceSuccessFuture(futures); } @@ -125,36 +126,43 @@ public class ClusterConfigService { return AsyncUtils.newFailedFuture(new IllegalArgumentException("app does not have machines")); } - boolean machineOk = appInfo.getMachines().stream().filter(e -> e.isHealthy()) - .map(e -> e.getIp() + '@' + e.getPort()).anyMatch(e -> e.equals(machineId)); + boolean machineOk = appInfo.getMachines() + .stream() + .filter(e -> e.isHealthy()) + .map(e -> e.getIp() + '@' + e.getPort()) + .anyMatch(e -> e.equals(machineId)); if (!machineOk) { return AsyncUtils.newFailedFuture(new IllegalStateException("machine does not exist or disconnected")); } return getClusterUniversalState(app).thenApply(ClusterEntityUtils::wrapToClusterGroup) - .thenCompose(e -> e.stream().filter(e1 -> e1.getMachineId().equals(machineId)).findAny() - .map(CompletableFuture::completedFuture) - .orElse(AsyncUtils.newFailedFuture(new IllegalStateException("not a server: " + machineId)))); + .thenCompose(e -> e.stream() + .filter(e1 -> e1.getMachineId().equals(machineId)) + .findAny() + .map(CompletableFuture::completedFuture) + .orElse(AsyncUtils.newFailedFuture(new IllegalStateException("not a server: " + machineId)))); } public CompletableFuture getClusterUniversalState(String app, String ip, int port) { return sentinelApiClient.fetchClusterMode(ip, port) - .thenApply(e -> new ClusterUniversalStateVO().setStateInfo(e)).thenCompose(vo -> { - if (vo.getStateInfo().getClientAvailable()) { - return sentinelApiClient.fetchClusterClientInfoAndConfig(ip, port) - .thenApply(cc -> vo.setClient(new ClusterClientStateVO().setClientConfig(cc))); - } - else { - return CompletableFuture.completedFuture(vo); - } - }).thenCompose(vo -> { - if (vo.getStateInfo().getServerAvailable()) { - return sentinelApiClient.fetchClusterServerBasicInfo(ip, port).thenApply(vo::setServer); - } - else { - return CompletableFuture.completedFuture(vo); - } - }); + .thenApply(e -> new ClusterUniversalStateVO().setStateInfo(e)) + .thenCompose(vo -> { + if (vo.getStateInfo().getClientAvailable()) { + return sentinelApiClient.fetchClusterClientInfoAndConfig(ip, port) + .thenApply(cc -> vo.setClient(new ClusterClientStateVO().setClientConfig(cc))); + } + else { + return CompletableFuture.completedFuture(vo); + } + }) + .thenCompose(vo -> { + if (vo.getStateInfo().getServerAvailable()) { + return sentinelApiClient.fetchClusterServerBasicInfo(ip, port).thenApply(vo::setServer); + } + else { + return CompletableFuture.completedFuture(vo); + } + }); } private boolean invalidTransportConfig(ServerTransportConfig transportConfig) { diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/AsyncUtils.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/AsyncUtils.java index b7372b273..2cf15bbc9 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/AsyncUtils.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/AsyncUtils.java @@ -39,13 +39,18 @@ public final class AsyncUtils { } public static CompletableFuture> sequenceFuture(List> futures) { - return CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).thenApply( - v -> futures.stream().map(AsyncUtils::getValue).filter(Objects::nonNull).collect(Collectors.toList())); + return CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])) + .thenApply(v -> futures.stream() + .map(AsyncUtils::getValue) + .filter(Objects::nonNull) + .collect(Collectors.toList())); } public static CompletableFuture> sequenceSuccessFuture(List> futures) { - return CompletableFuture.supplyAsync(() -> futures.parallelStream().map(AsyncUtils::getValue) - .filter(Objects::nonNull).collect(Collectors.toList())); + return CompletableFuture.supplyAsync(() -> futures.parallelStream() + .map(AsyncUtils::getValue) + .filter(Objects::nonNull) + .collect(Collectors.toList())); } public static T getValue(CompletableFuture future) { diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/ClusterEntityUtils.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/ClusterEntityUtils.java index a4cb6de12..de2ed0c5d 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/ClusterEntityUtils.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/util/ClusterEntityUtils.java @@ -45,10 +45,15 @@ public final class ClusterEntityUtils { String serverId = ip + '@' + stateVO.getCommandPort(); ClusterServerStateVO serverStateVO = stateVO.getState().getServer(); map.computeIfAbsent(serverId, - v -> new AppClusterServerStateWrapVO().setId(serverId).setIp(ip) - .setPort(serverStateVO.getPort()).setState(serverStateVO).setBelongToApp(true) - .setConnectedCount(serverStateVO.getConnection().stream() - .mapToInt(ConnectionGroupVO::getConnectedCount).sum())); + v -> new AppClusterServerStateWrapVO().setId(serverId) + .setIp(ip) + .setPort(serverStateVO.getPort()) + .setState(serverStateVO) + .setBelongToApp(true) + .setConnectedCount(serverStateVO.getConnection() + .stream() + .mapToInt(ConnectionGroupVO::getConnectedCount) + .sum())); tokenServerSet.add(ip + ":" + serverStateVO.getPort()); } } @@ -69,8 +74,11 @@ public final class ClusterEntityUtils { // We are not able to get the commandPort of foreign token server // directly. String serverId = String.format("%s:%d", serverIp, serverPort); - map.computeIfAbsent(serverId, v -> new AppClusterServerStateWrapVO().setId(serverId).setIp(serverIp) - .setPort(serverPort).setBelongToApp(false)); + map.computeIfAbsent(serverId, + v -> new AppClusterServerStateWrapVO().setId(serverId) + .setIp(serverIp) + .setPort(serverPort) + .setBelongToApp(false)); } } return new ArrayList<>(map.values()); @@ -89,8 +97,11 @@ public final class ClusterEntityUtils { String ip = stateVO.getIp(); String clientId = ip + '@' + stateVO.getCommandPort(); ClusterClientStateVO clientStateVO = stateVO.getState().getClient(); - map.computeIfAbsent(clientId, v -> new AppClusterClientStateWrapVO().setId(clientId).setIp(ip) - .setState(clientStateVO).setCommandPort(stateVO.getCommandPort())); + map.computeIfAbsent(clientId, + v -> new AppClusterClientStateWrapVO().setId(clientId) + .setIp(ip) + .setState(clientStateVO) + .setCommandPort(stateVO.getCommandPort())); } } return new ArrayList<>(map.values()); @@ -108,8 +119,11 @@ public final class ClusterEntityUtils { String serverAddress = getIp(ip); int port = stateVO.getState().getServer().getPort(); String targetAddress = serverAddress + ":" + port; - map.computeIfAbsent(targetAddress, v -> new ClusterGroupEntity().setBelongToApp(true) - .setMachineId(ip + '@' + stateVO.getCommandPort()).setIp(ip).setPort(port)); + map.computeIfAbsent(targetAddress, + v -> new ClusterGroupEntity().setBelongToApp(true) + .setMachineId(ip + '@' + stateVO.getCommandPort()) + .setIp(ip) + .setPort(port)); } } for (ClusterUniversalStatePairVO stateVO : list) { @@ -122,8 +136,11 @@ public final class ClusterEntityUtils { continue; } String targetAddress = targetServer + ":" + targetPort; - ClusterGroupEntity group = map.computeIfAbsent(targetAddress, v -> new ClusterGroupEntity() - .setBelongToApp(true).setMachineId(targetServer).setIp(targetServer).setPort(targetPort)); + ClusterGroupEntity group = map.computeIfAbsent(targetAddress, + v -> new ClusterGroupEntity().setBelongToApp(true) + .setMachineId(targetServer) + .setIp(targetServer) + .setPort(targetPort)); group.getClientSet().add(ip + '@' + stateVO.getCommandPort()); } } diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java index 7c5be8e64..4bea237be 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java @@ -49,8 +49,9 @@ public class JobApiController { } if (XxlJobAdminConfig.getAdminConfig().getAccessToken() != null && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length() > 0 - && !XxlJobAdminConfig.getAdminConfig().getAccessToken() - .equals(request.getHeader(XxlJobRemotingUtil.XXL_JOB_ACCESS_TOKEN))) { + && !XxlJobAdminConfig.getAdminConfig() + .getAccessToken() + .equals(request.getHeader(XxlJobRemotingUtil.XXL_JOB_ACCESS_TOKEN))) { return new ReturnT(ReturnT.FAIL_CODE, "The access token is wrong."); } diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java index 1b3fcf1ee..e60ea1ccc 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/annotation/PermissionLimit.java @@ -7,6 +7,7 @@ import java.lang.annotation.Target; /** * 权限限制 + * * @author xuxueli 2015-12-12 18:29:02 */ @Target(ElementType.METHOD) diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/impl/EmailJobAlarm.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/impl/EmailJobAlarm.java index 4c52796e6..869eb1d39 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/impl/EmailJobAlarm.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/impl/EmailJobAlarm.java @@ -49,8 +49,9 @@ public class EmailJobAlarm implements JobAlarm { } // email info - XxlJobGroup group = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao() - .load(Integer.valueOf(info.getJobGroup())); + XxlJobGroup group = XxlJobAdminConfig.getAdminConfig() + .getXxlJobGroupDao() + .load(Integer.valueOf(info.getJobGroup())); String personal = I18nUtil.getString("admin_name_full"); String title = I18nUtil.getString("jobconf_monitor"); String content = MessageFormat.format(loadEmailJobAlarmTemplate(), diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java index 92e50d158..435ac1fe9 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java @@ -47,8 +47,9 @@ public class XxlJobCompleter { // 1、handle success, to trigger child job String triggerChildMsg = null; if (XxlJobContext.HANDLE_CODE_SUCCESS == xxlJobLog.getHandleCode()) { - XxlJobInfo xxlJobInfo = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao() - .loadById(xxlJobLog.getJobId()); + XxlJobInfo xxlJobInfo = XxlJobAdminConfig.getAdminConfig() + .getXxlJobInfoDao() + .loadById(xxlJobLog.getJobId()); if (xxlJobInfo != null && xxlJobInfo.getChildJobId() != null && xxlJobInfo.getChildJobId().trim().length() > 0) { triggerChildMsg = "

>>>>>>>>>>>" diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java index 530d6dbf8..3a5dd759e 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java @@ -30,9 +30,13 @@ public class ExecutorRouteBusyover extends ExecutorRouter { idleBeatResult = new ReturnT(ReturnT.FAIL_CODE, "" + e); } idleBeatResultSB.append((idleBeatResultSB.length() > 0) ? "

" : "") - .append(I18nUtil.getString("jobconf_idleBeat") + ":").append("
address:").append(address) - .append("
code:").append(idleBeatResult.getCode()).append("
msg:") - .append(idleBeatResult.getMsg()); + .append(I18nUtil.getString("jobconf_idleBeat") + ":") + .append("
address:") + .append(address) + .append("
code:") + .append(idleBeatResult.getCode()) + .append("
msg:") + .append(idleBeatResult.getMsg()); // beat success if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) { diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java index 0889e3d30..f6d815188 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java @@ -30,8 +30,13 @@ public class ExecutorRouteFailover extends ExecutorRouter { beatResult = new ReturnT(ReturnT.FAIL_CODE, "" + e); } beatResultSB.append((beatResultSB.length() > 0) ? "

" : "") - .append(I18nUtil.getString("jobconf_beat") + ":").append("
address:").append(address) - .append("
code:").append(beatResult.getCode()).append("
msg:").append(beatResult.getMsg()); + .append(I18nUtil.getString("jobconf_beat") + ":") + .append("
address:") + .append(address) + .append("
code:") + .append(beatResult.getCode()) + .append("
msg:") + .append(beatResult.getMsg()); // beat success if (beatResult.getCode() == ReturnT.SUCCESS_CODE) { diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java index 52abfe898..4c57b120d 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java @@ -76,8 +76,9 @@ public class JobCompleteHelper { try { // 任务结果丢失处理:调度记录停留在 "运行中" 状态超过10min,且对应执行器心跳注册失败不在线,则将本地调度主动标记失败; Date losedTime = DateUtil.addMinutes(new Date(), -10); - List losedJobIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao() - .findLostJobIds(losedTime); + List losedJobIds = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .findLostJobIds(losedTime); if (losedJobIds != null && losedJobIds.size() > 0) { for (Long logId : losedJobIds) { diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java index 79863a0df..dc7156b6c 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java @@ -42,20 +42,23 @@ public class JobFailMonitorHelper { while (!toStop) { try { - List failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao() - .findFailJobLogIds(1000); + List failLogIds = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .findFailJobLogIds(1000); if (failLogIds != null && !failLogIds.isEmpty()) { for (long failLogId : failLogIds) { // lock log - int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao() - .updateAlarmStatus(failLogId, 0, -1); + int lockRet = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .updateAlarmStatus(failLogId, 0, -1); if (lockRet < 1) { continue; } XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(failLogId); - XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao() - .loadById(log.getJobId()); + XxlJobInfo info = XxlJobAdminConfig.getAdminConfig() + .getXxlJobInfoDao() + .loadById(log.getJobId()); // 1、fail retry monitor if (log.getExecutorFailRetryCount() > 0) { @@ -72,16 +75,18 @@ public class JobFailMonitorHelper { // 2、fail alarm monitor int newAlarmStatus = 0; // 告警状态:0-默认、-1=锁定状态、1-无需告警、2-告警成功、3-告警失败 if (info != null) { - boolean alarmResult = XxlJobAdminConfig.getAdminConfig().getJobAlarmer().alarm(info, - log); + boolean alarmResult = XxlJobAdminConfig.getAdminConfig() + .getJobAlarmer() + .alarm(info, log); newAlarmStatus = alarmResult ? 2 : 3; } else { newAlarmStatus = 1; } - XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, -1, - newAlarmStatus); + XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .updateAlarmStatus(failLogId, -1, newAlarmStatus); } } diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java index d2c7c38e4..93b1b089a 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java @@ -70,8 +70,9 @@ public class JobLogReportHelper { xxlJobLogReport.setSucCount(0); xxlJobLogReport.setFailCount(0); - Map triggerCountMap = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao() - .findLogReport(todayFrom, todayTo); + Map triggerCountMap = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .findLogReport(todayFrom, todayTo); if (triggerCountMap != null && triggerCountMap.size() > 0) { int triggerDayCount = triggerCountMap.containsKey("triggerDayCount") ? Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCount"))) : 0; @@ -89,8 +90,9 @@ public class JobLogReportHelper { } // do refresh - int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobLogReportDao() - .update(xxlJobLogReport); + int ret = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogReportDao() + .update(xxlJobLogReport); if (ret < 1) { XxlJobAdminConfig.getAdminConfig().getXxlJobLogReportDao().save(xxlJobLogReport); } @@ -120,8 +122,9 @@ public class JobLogReportHelper { // clean expired log List logIds = null; do { - logIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findClearLogIds(0, 0, - clearBeforeTime, 0, 1000); + logIds = XxlJobAdminConfig.getAdminConfig() + .getXxlJobLogDao() + .findClearLogIds(0, 0, clearBeforeTime, 0, 1000); if (logIds != null && logIds.size() > 0) { XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().clearLog(logIds); } diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java index 27d39219b..967b4d0af 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java @@ -60,21 +60,24 @@ public class JobRegistryHelper { while (!toStop) { try { // auto registry group - List groupList = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao() - .findByAddressType(0); + List groupList = XxlJobAdminConfig.getAdminConfig() + .getXxlJobGroupDao() + .findByAddressType(0); if (groupList != null && !groupList.isEmpty()) { // remove dead address (admin/executor) - List ids = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao() - .findDead(RegistryConfig.DEAD_TIMEOUT, new Date()); + List ids = XxlJobAdminConfig.getAdminConfig() + .getXxlJobRegistryDao() + .findDead(RegistryConfig.DEAD_TIMEOUT, new Date()); if (ids != null && ids.size() > 0) { XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().removeDead(ids); } // fresh online address (admin/executor) HashMap> appAddressMap = new HashMap>(); - List list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao() - .findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); + List list = XxlJobAdminConfig.getAdminConfig() + .getXxlJobRegistryDao() + .findAll(RegistryConfig.DEAD_TIMEOUT, new Date()); if (list != null) { for (XxlJobRegistry item : list) { if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) { @@ -165,13 +168,15 @@ public class JobRegistryHelper { registryOrRemoveThreadPool.execute(new Runnable() { @Override public void run() { - int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryUpdate( - registryParam.getRegistryGroup(), registryParam.getRegistryKey(), - registryParam.getRegistryValue(), new Date()); - if (ret < 1) { - XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registrySave( - registryParam.getRegistryGroup(), registryParam.getRegistryKey(), + int ret = XxlJobAdminConfig.getAdminConfig() + .getXxlJobRegistryDao() + .registryUpdate(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date()); + if (ret < 1) { + XxlJobAdminConfig.getAdminConfig() + .getXxlJobRegistryDao() + .registrySave(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), + registryParam.getRegistryValue(), new Date()); // fresh freshGroupRegistryInfo(registryParam); @@ -195,9 +200,10 @@ public class JobRegistryHelper { registryOrRemoveThreadPool.execute(new Runnable() { @Override public void run() { - int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().registryDelete( - registryParam.getRegistryGroup(), registryParam.getRegistryKey(), - registryParam.getRegistryValue()); + int ret = XxlJobAdminConfig.getAdminConfig() + .getXxlJobRegistryDao() + .registryDelete(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), + registryParam.getRegistryValue()); if (ret > 0) { // fresh freshGroupRegistryInfo(registryParam); diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java index 3d98bb5cb..d4f97d833 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java @@ -87,8 +87,9 @@ public class JobScheduleHelper { // 1、pre read long nowTime = System.currentTimeMillis(); - List scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao() - .scheduleJobQuery(nowTime + PRE_READ_MS, preReadCount); + List scheduleList = XxlJobAdminConfig.getAdminConfig() + .getXxlJobInfoDao() + .scheduleJobQuery(nowTime + PRE_READ_MS, preReadCount); if (scheduleList != null && scheduleList.size() > 0) { // 2、push time-ring for (XxlJobInfo jobInfo : scheduleList) { @@ -101,7 +102,7 @@ public class JobScheduleHelper { // 1、misfire match MisfireStrategyEnum misfireStrategyEnum = MisfireStrategyEnum - .match(jobInfo.getMisfireStrategy(), MisfireStrategyEnum.DO_NOTHING); + .match(jobInfo.getMisfireStrategy(), MisfireStrategyEnum.DO_NOTHING); if (MisfireStrategyEnum.FIRE_ONCE_NOW == misfireStrategyEnum) { // FIRE_ONCE_NOW 》 trigger JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.MISFIRE, -1, null, @@ -228,7 +229,7 @@ public class JobScheduleHelper { // pre-read period: success > scan each second; fail > skip // this period; TimeUnit.MILLISECONDS - .sleep((preReadSuc ? 1000 : PRE_READ_MS) - System.currentTimeMillis() % 1000); + .sleep((preReadSuc ? 1000 : PRE_READ_MS) - System.currentTimeMillis() % 1000); } catch (InterruptedException e) { if (!scheduleThreadToStop) { diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java index 2dd817bad..e0b660f18 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java @@ -66,7 +66,7 @@ public class XxlJobTrigger { } } if (ExecutorRouteStrategyEnum.SHARDING_BROADCAST == ExecutorRouteStrategyEnum - .match(jobInfo.getExecutorRouteStrategy(), null) && group.getRegistryList() != null + .match(jobInfo.getExecutorRouteStrategy(), null) && group.getRegistryList() != null && !group.getRegistryList().isEmpty() && shardingParam == null) { for (int i = 0; i < group.getRegistryList().size(); i++) { processTrigger(group, jobInfo, finalFailRetryCount, triggerType, i, group.getRegistryList().size()); @@ -106,7 +106,7 @@ public class XxlJobTrigger { ExecutorBlockStrategyEnum blockStrategy = ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), ExecutorBlockStrategyEnum.SERIAL_EXECUTION); // block strategy ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum - .match(jobInfo.getExecutorRouteStrategy(), null); // route strategy + .match(jobInfo.getExecutorRouteStrategy(), null); // route strategy String shardingParam = (ExecutorRouteStrategyEnum.SHARDING_BROADCAST == executorRouteStrategyEnum) ? String.valueOf(index).concat("/").concat(String.valueOf(total)) : null; @@ -169,31 +169,45 @@ public class XxlJobTrigger { // 5、collection trigger info StringBuffer triggerMsgSb = new StringBuffer(); triggerMsgSb.append(I18nUtil.getString("jobconf_trigger_type")).append(":").append(triggerType.getTitle()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobconf_trigger_admin_adress")).append(":") - .append(IpUtil.getIp()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobconf_trigger_exe_regtype")).append(":") - .append((group.getAddressType() == 0) ? I18nUtil.getString("jobgroup_field_addressType_0") - : I18nUtil.getString("jobgroup_field_addressType_1")); - triggerMsgSb.append("
").append(I18nUtil.getString("jobconf_trigger_exe_regaddress")).append(":") - .append(group.getRegistryList()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorRouteStrategy")).append(":") - .append(executorRouteStrategyEnum.getTitle()); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobconf_trigger_admin_adress")) + .append(":") + .append(IpUtil.getIp()); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobconf_trigger_exe_regtype")) + .append(":") + .append((group.getAddressType() == 0) ? I18nUtil.getString("jobgroup_field_addressType_0") + : I18nUtil.getString("jobgroup_field_addressType_1")); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobconf_trigger_exe_regaddress")) + .append(":") + .append(group.getRegistryList()); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobinfo_field_executorRouteStrategy")) + .append(":") + .append(executorRouteStrategyEnum.getTitle()); if (shardingParam != null) { triggerMsgSb.append("(" + shardingParam + ")"); } - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorBlockStrategy")).append(":") - .append(blockStrategy.getTitle()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_timeout")).append(":") - .append(jobInfo.getExecutorTimeout()); - triggerMsgSb.append("
").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":") - .append(finalFailRetryCount); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobinfo_field_executorBlockStrategy")) + .append(":") + .append(blockStrategy.getTitle()); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobinfo_field_timeout")) + .append(":") + .append(jobInfo.getExecutorTimeout()); + triggerMsgSb.append("
") + .append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")) + .append(":") + .append(finalFailRetryCount); triggerMsgSb - .append("

>>>>>>>>>>>" - + I18nUtil.getString("jobconf_trigger_run") + "<<<<<<<<<<<
") - .append((routeAddressResult != null && routeAddressResult.getMsg() != null) - ? routeAddressResult.getMsg() + "

" : "") - .append(triggerResult.getMsg() != null ? triggerResult.getMsg() : ""); + .append("

>>>>>>>>>>>" + I18nUtil.getString("jobconf_trigger_run") + + "<<<<<<<<<<<
") + .append((routeAddressResult != null && routeAddressResult.getMsg() != null) + ? routeAddressResult.getMsg() + "

" : "") + .append(triggerResult.getMsg() != null ? triggerResult.getMsg() : ""); // 6、save log trigger-info jobLog.setExecutorAddress(address); diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java index 82e63c9df..7ee1830d3 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java @@ -17,7 +17,7 @@ public class FtlUtil { private static Logger logger = LoggerFactory.getLogger(FtlUtil.class); private static BeansWrapper wrapper = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS) - .build(); // BeansWrapper.getDefaultInstance(); + .build(); // BeansWrapper.getDefaultInstance(); public static TemplateHashModel generateStaticModel(String packageName) { try { diff --git a/pom.xml b/pom.xml index 16b1ed927..90a529f6b 100755 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ username password 4.9.9 - 0.0.35 + 0.0.38
-- Gitee From 86c3dc2c10408015160f6fd67d611e3f30bef171 Mon Sep 17 00:00:00 2001 From: jumuning <840256574@qq.com> Date: Thu, 23 Feb 2023 17:27:15 +0800 Subject: [PATCH 033/105] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotation/EnablePigResourceServer.java | 4 +-- .../PigOAuthRequestInterceptor.java | 2 +- .../PigResourceServerAutoConfiguration.java | 12 +++++++ .../feign/PigFeignClientConfiguration.java | 35 ------------------- 4 files changed, 14 insertions(+), 39 deletions(-) rename pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/{feign => component}/PigOAuthRequestInterceptor.java (97%) delete mode 100755 pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigFeignClientConfiguration.java diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java index 806cbea84..53bac67be 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java @@ -18,7 +18,6 @@ package com.pig4cloud.pig.common.security.annotation; import com.pig4cloud.pig.common.security.component.PigResourceServerAutoConfiguration; import com.pig4cloud.pig.common.security.component.PigResourceServerConfiguration; -import com.pig4cloud.pig.common.security.feign.PigFeignClientConfiguration; import org.springframework.context.annotation.Import; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; @@ -35,8 +34,7 @@ import java.lang.annotation.*; @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @EnableGlobalMethodSecurity(prePostEnabled = true) -@Import({ PigResourceServerAutoConfiguration.class, PigResourceServerConfiguration.class, - PigFeignClientConfiguration.class }) +@Import({ PigResourceServerAutoConfiguration.class, PigResourceServerConfiguration.class}) public @interface EnablePigResourceServer { } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigOAuthRequestInterceptor.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java similarity index 97% rename from pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigOAuthRequestInterceptor.java rename to pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java index 597ac3625..bc0aece47 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigOAuthRequestInterceptor.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java @@ -1,4 +1,4 @@ -package com.pig4cloud.pig.common.security.feign; +package com.pig4cloud.pig.common.security.component; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerAutoConfiguration.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerAutoConfiguration.java index 3aac75ace..9016c4dd4 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerAutoConfiguration.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigResourceServerAutoConfiguration.java @@ -17,12 +17,14 @@ package com.pig4cloud.pig.common.security.component; import com.fasterxml.jackson.databind.ObjectMapper; +import feign.RequestInterceptor; import lombok.RequiredArgsConstructor; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService; import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector; +import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver; /** * @author lengleng @@ -73,4 +75,14 @@ public class PigResourceServerAutoConfiguration { return new PigCustomOpaqueTokenIntrospector(authorizationService); } + /** + * 注入 oauth2 feign token 增强 + * @param tokenResolver token获取处理器 + * @return 拦截器 + */ + @Bean + public RequestInterceptor oauthRequestInterceptor(BearerTokenResolver tokenResolver) { + return new PigOAuthRequestInterceptor(tokenResolver); + } + } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigFeignClientConfiguration.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigFeignClientConfiguration.java deleted file mode 100755 index a66b52d0e..000000000 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/feign/PigFeignClientConfiguration.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020 pig4cloud Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.pig4cloud.pig.common.security.feign; - -import feign.RequestInterceptor; -import org.springframework.context.annotation.Bean; -import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver; - -public class PigFeignClientConfiguration { - - /** - * 注入 oauth2 feign token 增强 - * @param tokenResolver token获取处理器 - * @return 拦截器 - */ - @Bean - public RequestInterceptor oauthRequestInterceptor(BearerTokenResolver tokenResolver) { - return new PigOAuthRequestInterceptor(tokenResolver); - } - -} -- Gitee From 52cd93864311cdec86a649972fbaeaece65ae910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=90=91=E6=B3=A2?= <18369656203@163.com> Date: Fri, 24 Feb 2023 03:42:57 +0000 Subject: [PATCH 034/105] up spring boot 2.7 closed #I6HBI9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨向波 <18369656203@163.com> --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d0a9e0503..9fea15f77 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ | 依赖 | 版本 | | ---------------------- |------------| -| Spring Boot | 2.7.7 | +| Spring Boot | 2.7.9 | | Spring Cloud | 2021.0.5 | | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.1 | diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 9cbc23c48..841765854 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -15,7 +15,7 @@ ${project.version} - 2.7.8 + 2.7.9 UTF-8 2.17.1 1.8 diff --git a/pom.xml b/pom.xml index 90a529f6b..7bd86d78b 100755 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.8 + 2.7.9 2021.0.5 2021.0.4.0 UTF-8 -- Gitee From dcbfdec9f06cfddaa23a184d27793a5f0046c120 Mon Sep 17 00:00:00 2001 From: twelvet <2471835953@qq.com> Date: Fri, 24 Feb 2023 03:52:04 +0000 Subject: [PATCH 035/105] Spring Boot 2.7.9 Signed-off-by: twelvet <2471835953@qq.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 90a529f6b..7bd86d78b 100755 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.8 + 2.7.9 2021.0.5 2021.0.4.0 UTF-8 -- Gitee From 6816eac6aa2728c45575e4068ad7775f22a78e0d Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 24 Feb 2023 13:13:46 +0800 Subject: [PATCH 036/105] :art: Improving structure / format of the code. spring-format --- .../pig/common/security/annotation/EnablePigResourceServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java index 53bac67be..3dbbd0c66 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/annotation/EnablePigResourceServer.java @@ -34,7 +34,7 @@ import java.lang.annotation.*; @Target({ ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) @EnableGlobalMethodSecurity(prePostEnabled = true) -@Import({ PigResourceServerAutoConfiguration.class, PigResourceServerConfiguration.class}) +@Import({ PigResourceServerAutoConfiguration.class, PigResourceServerConfiguration.class }) public @interface EnablePigResourceServer { } -- Gitee From a4c3c24faff55c6e6b6af679c2292f0a8be7350f Mon Sep 17 00:00:00 2001 From: ipod <10160846+ioy-op@user.noreply.gitee.com> Date: Tue, 28 Feb 2023 06:39:25 +0000 Subject: [PATCH 037/105] :up: close #I6HOX7 up spring-cloud 2021.0.6 Signed-off-by: ipod <10160846+ioy-op@user.noreply.gitee.com> --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9fea15f77..d92bac89e 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ | 依赖 | 版本 | | ---------------------- |------------| | Spring Boot | 2.7.9 | -| Spring Cloud | 2021.0.5 | +| Spring Cloud | 2021.0.6 | | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | diff --git a/pom.xml b/pom.xml index 7bd86d78b..f227978dd 100755 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.7.9 - 2021.0.5 + 2021.0.6 2021.0.4.0 UTF-8 1.8 -- Gitee From e7564562adec6415e9182c0c88049bcb98f61d62 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 28 Feb 2023 14:48:05 +0800 Subject: [PATCH 038/105] =?UTF-8?q?:boom:=20=E8=AF=B7=E6=B3=A8=E6=84=8F?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20nacos=20=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6SQL=20=EF=BC=8C=20support=20jasypt=203.0.5=20close=20#?= =?UTF-8?q?I6ID53?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig_config.sql | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db/pig_config.sql b/db/pig_config.sql index 44137fdb2..3a404bb03 100644 --- a/db/pig_config.sql +++ b/db/pig_config.sql @@ -37,7 +37,7 @@ CREATE TABLE `config_info` ( -- Records of config_info -- ---------------------------- BEGIN; -INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 加解密根密码\njasypt:\n encryptor:\n password: pig #根密码\n \n# Spring 相关\nspring:\n cache:\n type: redis\n redis:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \"*\" \n endpoint:\n health:\n show-details: ALWAYS\n\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# swagger 配置\nswagger:\n enabled: true\n title: Pig Swagger API\n gateway: http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}\n token-url: ${swagger.gateway}/auth/oauth2/token\n scope: server\n services:\n pig-upms-biz: admin\n pig-codegen: gen', 'ef637d9ffc033db98d10f628cfec967e', '2022-05-08 12:10:37', '2023-01-28 14:13:58', '', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); +INSERT INTO `config_info` VALUES (1, 'application-dev.yml', 'DEFAULT_GROUP', '# 配置文件加密根密码\njasypt:\n encryptor:\n password: pig\n algorithm: PBEWithMD5AndDES\n iv-generator-classname: org.jasypt.iv.NoIvGenerator\n \n# Spring 相关\nspring:\n cache:\n type: redis\n redis:\n host: pig-redis\n cloud:\n sentinel:\n eager: true\n transport:\n dashboard: pig-sentinel:5003\n\n# 暴露监控端点\nmanagement:\n endpoints:\n web:\n exposure:\n include: \"*\" \n endpoint:\n health:\n show-details: ALWAYS\n\n\n# feign 配置\nfeign:\n sentinel:\n enabled: true\n okhttp:\n enabled: true\n httpclient:\n enabled: false\n client:\n config:\n default:\n connectTimeout: 10000\n readTimeout: 10000\n compression:\n request:\n enabled: true\n response:\n enabled: true\n\n# mybaits-plus配置\nmybatis-plus:\n mapper-locations: classpath:/mapper/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: auto\n table-underline: true\n logic-delete-value: 1\n logic-not-delete-value: 0\n configuration:\n map-underscore-to-camel-case: true\n\n# swagger 配置\nswagger:\n enabled: true\n title: Pig Swagger API\n gateway: http://${GATEWAY_HOST:pig-gateway}:${GATEWAY-PORT:9999}\n token-url: ${swagger.gateway}/auth/oauth2/token\n scope: server\n services:\n pig-upms-biz: admin\n pig-codegen: gen', '81f8bae4b8125fd198704f797268c6b5', '2022-05-08 12:10:37', '2023-02-28 14:45:23', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (2, 'pig-auth-dev.yml', 'DEFAULT_GROUP', '# 数据源\nspring:\n freemarker:\n allow-request-override: false\n allow-session-override: false\n cache: true\n charset: UTF-8\n check-template-location: true\n content-type: text/html\n enabled: true\n expose-request-attributes: false\n expose-session-attributes: false\n expose-spring-macro-helpers: true\n prefer-file-system-access: true\n suffix: .ftl\n template-loader-path: classpath:/templates/', '74f53b71c7799aa754da75662378b93c', '2022-05-08 12:10:37', '2022-06-04 14:15:35', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (3, 'pig-codegen-dev.yml', 'DEFAULT_GROUP', '# 数据源配置\nspring:\n datasource:\n type: com.zaxxer.hikari.HikariDataSource\n driver-class-name: com.mysql.cj.jdbc.Driver\n username: root\n password: root\n url: jdbc:mysql://pig-mysql:3306/pig_codegen?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true\n resources:\n static-locations: classpath:/static/,classpath:/views/\n', 'cf786dbe3b07074fc187bf2eab3266b1', '2022-05-08 12:10:37', '2023-01-28 14:05:36', '', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', '', ''); INSERT INTO `config_info` VALUES (4, 'pig-gateway-dev.yml', 'DEFAULT_GROUP', 'spring:\n cloud:\n gateway:\n locator:\n enabled: true\n routes:\n # 认证中心\n - id: pig-auth\n uri: lb://pig-auth\n predicates:\n - Path=/auth/**\n filters:\n # 验证码处理\n - ValidateCodeGatewayFilter\n # 前端密码解密\n - PasswordDecoderFilter\n #UPMS 模块\n - id: pig-upms-biz\n uri: lb://pig-upms-biz\n predicates:\n - Path=/admin/**\n filters:\n # 限流配置\n - name: RequestRateLimiter\n args:\n key-resolver: \'#{@remoteAddrKeyResolver}\'\n redis-rate-limiter.replenishRate: 100\n redis-rate-limiter.burstCapacity: 200\n # 代码生成模块\n - id: pig-codegen\n uri: lb://pig-codegen\n predicates:\n - Path=/gen/**\n # 固定路由转发配置 无修改\n - id: openapi\n uri: lb://pig-gateway\n predicates:\n - Path=/v3/api-docs/**\n filters:\n - RewritePath=/v3/api-docs/(?.*), /$\\{path}/$\\{path}/v3/api-docs\n\ngateway:\n encode-key: \'thanks,pig4cloud\'\n ignore-clients:\n - test\n - client', '000988cf0102382d3f23df35027b47fd', '2022-05-08 12:10:37', '2022-06-07 14:00:11', 'nacos', '127.0.0.1', '', '', '', '', '', 'yaml', '', ''); diff --git a/pom.xml b/pom.xml index f227978dd..67771d97b 100755 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 2.3 3.1 1.10 - 2.1.0 + 3.0.5 3.0.0 3.0.3 2.3.1 -- Gitee From 6dbabd2f1d1b3720d0c002d3e508f7db05b97625 Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 3 Mar 2023 16:19:31 +0800 Subject: [PATCH 039/105] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20close=20#I6?= =?UTF-8?q?IL1L=20=E6=96=B9=E6=B3=95=E5=90=8D=E5=91=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E8=AF=8D=E9=97=AE=E9=A2=98=20=E7=BD=AE=E9=A1=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pig4cloud/pig/admin/controller/UserController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java index ec4be7a18..28b47d7ea 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java @@ -122,8 +122,8 @@ public class UserController { * @return */ @Inner(false) - @GetMapping("/check/exsit") - public R isExsit(UserDTO userDTO) { + @GetMapping("/check/exist") + public R isExist(UserDTO userDTO) { List sysUserList = userService.list(new QueryWrapper<>(userDTO)); if (CollUtil.isNotEmpty(sysUserList)) { return R.ok(Boolean.TRUE, MsgUtils.getMessage(ErrorCodes.SYS_USER_EXISTING)); -- Gitee From bf3a840dbff8eb3c8fa4c7eda787ec0935647318 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 4 Mar 2023 23:07:13 +0800 Subject: [PATCH 040/105] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20close=20#I6?= =?UTF-8?q?IL1L=20=E6=96=B9=E6=B3=95=E5=90=8D=E5=91=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E8=AF=8D=E9=97=AE=E9=A2=98=20=E7=BD=AE=E9=A1=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java index 1dc22a87e..136739bdd 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysUserServiceImpl.java @@ -300,10 +300,10 @@ public class SysUserServiceImpl extends ServiceImpl impl for (UserExcelVO excel : excelVOList) { Set errorMsg = new HashSet<>(); // 校验用户名是否存在 - boolean exsitUserName = userList.stream() + boolean existUserName = userList.stream() .anyMatch(sysUser -> excel.getUsername().equals(sysUser.getUsername())); - if (exsitUserName) { + if (existUserName) { errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, excel.getUsername())); } -- Gitee From 3485586c19441c09040a155ca13f372f3c68a4e6 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 4 Mar 2023 23:10:38 +0800 Subject: [PATCH 041/105] =?UTF-8?q?:bookmark:=20:bookmark:=20:bookmark:=20?= =?UTF-8?q?v3.6.6=20=E5=BC=95=E5=85=A5=20jasypt=203.x=20=E6=B3=A8=E6=84=8F?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20pig=5Fconfig.sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-auth/pom.xml | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- pig-common/pig-common-core/pom.xml | 2 +- pig-common/pig-common-datasource/pom.xml | 2 +- pig-common/pig-common-feign/pom.xml | 2 +- pig-common/pig-common-job/pom.xml | 2 +- pig-common/pig-common-log/pom.xml | 2 +- pig-common/pig-common-mybatis/pom.xml | 2 +- pig-common/pig-common-seata/pom.xml | 2 +- pig-common/pig-common-security/pom.xml | 2 +- pig-common/pig-common-swagger/pom.xml | 2 +- pig-common/pig-common-xss/pom.xml | 2 +- pig-common/pom.xml | 2 +- pig-gateway/pom.xml | 2 +- pig-register/pom.xml | 2 +- pig-upms/pig-upms-api/pom.xml | 2 +- pig-upms/pig-upms-biz/pom.xml | 2 +- pig-upms/pom.xml | 2 +- pig-visual/pig-codegen/pom.xml | 2 +- pig-visual/pig-monitor/pom.xml | 2 +- pig-visual/pig-sentinel-dashboard/pom.xml | 2 +- pig-visual/pig-xxl-job-admin/pom.xml | 2 +- pig-visual/pom.xml | 2 +- pom.xml | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pig-auth/pom.xml b/pig-auth/pom.xml index bb9dc812c..c4fb34243 100755 --- a/pig-auth/pom.xml +++ b/pig-auth/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-auth diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 841765854..89a18939c 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common-bom - 3.6.5 + 3.6.6 pom pig-common-bom diff --git a/pig-common/pig-common-core/pom.xml b/pig-common/pig-common-core/pom.xml index 16b84c5ed..8619dd424 100755 --- a/pig-common/pig-common-core/pom.xml +++ b/pig-common/pig-common-core/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-core diff --git a/pig-common/pig-common-datasource/pom.xml b/pig-common/pig-common-datasource/pom.xml index ee227c821..a993c050d 100644 --- a/pig-common/pig-common-datasource/pom.xml +++ b/pig-common/pig-common-datasource/pom.xml @@ -21,7 +21,7 @@ pig-common com.pig4cloud - 3.6.5 + 3.6.6 4.0.0 diff --git a/pig-common/pig-common-feign/pom.xml b/pig-common/pig-common-feign/pom.xml index 8e1338694..481aedb76 100755 --- a/pig-common/pig-common-feign/pom.xml +++ b/pig-common/pig-common-feign/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 4.0.0 diff --git a/pig-common/pig-common-job/pom.xml b/pig-common/pig-common-job/pom.xml index 0ab97cbff..2f260acef 100755 --- a/pig-common/pig-common-job/pom.xml +++ b/pig-common/pig-common-job/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-job diff --git a/pig-common/pig-common-log/pom.xml b/pig-common/pig-common-log/pom.xml index aa1c20467..e124c8173 100755 --- a/pig-common/pig-common-log/pom.xml +++ b/pig-common/pig-common-log/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-log diff --git a/pig-common/pig-common-mybatis/pom.xml b/pig-common/pig-common-mybatis/pom.xml index dd7d6b34b..04cab5b2a 100755 --- a/pig-common/pig-common-mybatis/pom.xml +++ b/pig-common/pig-common-mybatis/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-mybatis diff --git a/pig-common/pig-common-seata/pom.xml b/pig-common/pig-common-seata/pom.xml index 09a459768..acaa0879b 100755 --- a/pig-common/pig-common-seata/pom.xml +++ b/pig-common/pig-common-seata/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-seata diff --git a/pig-common/pig-common-security/pom.xml b/pig-common/pig-common-security/pom.xml index ee8f4faa1..db14760c6 100755 --- a/pig-common/pig-common-security/pom.xml +++ b/pig-common/pig-common-security/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-security diff --git a/pig-common/pig-common-swagger/pom.xml b/pig-common/pig-common-swagger/pom.xml index f585a4c36..28c55dd5e 100644 --- a/pig-common/pig-common-swagger/pom.xml +++ b/pig-common/pig-common-swagger/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-swagger diff --git a/pig-common/pig-common-xss/pom.xml b/pig-common/pig-common-xss/pom.xml index 387742b96..254eadf81 100755 --- a/pig-common/pig-common-xss/pom.xml +++ b/pig-common/pig-common-xss/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common - 3.6.5 + 3.6.6 pig-common-xss diff --git a/pig-common/pom.xml b/pig-common/pom.xml index 60616c984..619b5fa60 100755 --- a/pig-common/pom.xml +++ b/pig-common/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-common diff --git a/pig-gateway/pom.xml b/pig-gateway/pom.xml index 6ce35adfc..a15a39523 100755 --- a/pig-gateway/pom.xml +++ b/pig-gateway/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-gateway diff --git a/pig-register/pom.xml b/pig-register/pom.xml index 1dede07a0..11a17fbd7 100755 --- a/pig-register/pom.xml +++ b/pig-register/pom.xml @@ -18,7 +18,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-register diff --git a/pig-upms/pig-upms-api/pom.xml b/pig-upms/pig-upms-api/pom.xml index d924b07db..0cb6dd892 100755 --- a/pig-upms/pig-upms-api/pom.xml +++ b/pig-upms/pig-upms-api/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.5 + 3.6.6 pig-upms-api diff --git a/pig-upms/pig-upms-biz/pom.xml b/pig-upms/pig-upms-biz/pom.xml index 2aac59cc3..df4d2cc69 100644 --- a/pig-upms/pig-upms-biz/pom.xml +++ b/pig-upms/pig-upms-biz/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.5 + 3.6.6 pig-upms-biz diff --git a/pig-upms/pom.xml b/pig-upms/pom.xml index 1b9cd02eb..e69d83ce3 100755 --- a/pig-upms/pom.xml +++ b/pig-upms/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-upms diff --git a/pig-visual/pig-codegen/pom.xml b/pig-visual/pig-codegen/pom.xml index aa6539412..7fc089561 100755 --- a/pig-visual/pig-codegen/pom.xml +++ b/pig-visual/pig-codegen/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig-visual - 3.6.5 + 3.6.6 pig-codegen diff --git a/pig-visual/pig-monitor/pom.xml b/pig-visual/pig-monitor/pom.xml index 4145a511d..9c587b18c 100755 --- a/pig-visual/pig-monitor/pom.xml +++ b/pig-visual/pig-monitor/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-visual - 3.6.5 + 3.6.6 pig-monitor diff --git a/pig-visual/pig-sentinel-dashboard/pom.xml b/pig-visual/pig-sentinel-dashboard/pom.xml index 0840d1616..46307f602 100755 --- a/pig-visual/pig-sentinel-dashboard/pom.xml +++ b/pig-visual/pig-sentinel-dashboard/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-visual - 3.6.5 + 3.6.6 pig-sentinel-dashboard diff --git a/pig-visual/pig-xxl-job-admin/pom.xml b/pig-visual/pig-xxl-job-admin/pom.xml index ee359efc6..f49f2dac2 100644 --- a/pig-visual/pig-xxl-job-admin/pom.xml +++ b/pig-visual/pig-xxl-job-admin/pom.xml @@ -4,7 +4,7 @@ com.pig4cloud pig-visual - 3.6.5 + 3.6.6 pig-xxl-job-admin diff --git a/pig-visual/pom.xml b/pig-visual/pom.xml index 92ae2b616..323bf7db4 100755 --- a/pig-visual/pom.xml +++ b/pig-visual/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.5 + 3.6.6 pig-visual diff --git a/pom.xml b/pom.xml index 67771d97b..d3a2fcc00 100755 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig ${project.artifactId} - 3.6.5 + 3.6.6 pom https://www.pig4cloud.com -- Gitee From b7e6a670ce5932f0f41932291b0d2351708ffaa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Tue, 7 Mar 2023 09:14:31 +0800 Subject: [PATCH 042/105] =?UTF-8?q?:bug:=20HashMap=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E5=BA=94=E8=AF=A5=E6=98=AF2=E7=9A=84?= =?UTF-8?q?=E6=8C=87=E6=95=B0=EF=BC=8C=E5=A6=82=EF=BC=9A2=E3=80=814?= =?UTF-8?q?=E3=80=818=E3=80=8116=20...=EF=BC=8C=E9=BB=98=E8=AE=A4=E8=BE=BE?= =?UTF-8?q?=E5=88=B075%=E6=97=B6=E8=BF=9B=E8=A1=8C=E6=89=A9=E5=AE=B9?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysDeptServiceImpl.java | 2 +- .../dashboard/client/SentinelApiClient.java | 25 ++++++++----------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java index b141b4e3c..319fc6bdf 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java @@ -162,7 +162,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl treeNode.setName(dept.getName()); treeNode.setWeight(dept.getSortOrder()); // 扩展属性 - Map extra = new HashMap<>(4); + Map extra = new HashMap<>(2); extra.put("createTime", dept.getCreateTime()); treeNode.setExtra(extra); return treeNode; diff --git a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java index 3cac7f994..821727f54 100644 --- a/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java +++ b/pig-visual/pig-sentinel-dashboard/src/main/java/com/alibaba/csp/sentinel/dashboard/client/SentinelApiClient.java @@ -371,7 +371,7 @@ public class SentinelApiClient { AssertUtil.isTrue(port > 0, "Bad machine port"); Map params = null; if (StringUtil.isNotEmpty(type)) { - params = new HashMap<>(1); + params = new HashMap<>(2); params.put("type", type); } return executeCommand(ip, port, api, params, false).thenApply(json -> JSON.parseArray(json, ruleType)); @@ -382,11 +382,6 @@ public class SentinelApiClient { try { AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); - Map params = null; - if (StringUtil.isNotEmpty(type)) { - params = new HashMap<>(1); - params.put("type", type); - } return fetchItemsAsync(ip, port, api, type, ruleType).get(); } catch (InterruptedException | ExecutionException e) { @@ -412,7 +407,7 @@ public class SentinelApiClient { AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); String data = JSON.toJSONString(entities.stream().map(r -> r.toRule()).collect(Collectors.toList())); - Map params = new HashMap<>(2); + Map params = new HashMap<>(4); params.put("type", type); params.put("data", data); String result = executeCommand(app, ip, port, SET_RULES_PATH, params, true).get(); @@ -441,7 +436,7 @@ public class SentinelApiClient { AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); String data = JSON.toJSONString(entities.stream().map(r -> r.toRule()).collect(Collectors.toList())); - Map params = new HashMap<>(2); + Map params = new HashMap<>(4); params.put("type", type); params.put("data", data); return executeCommand(app, ip, port, SET_RULES_PATH, params, true).thenCompose(r -> { @@ -548,7 +543,7 @@ public class SentinelApiClient { AssertUtil.notEmpty(app, "Bad app name"); AssertUtil.notEmpty(ip, "Bad machine IP"); AssertUtil.isTrue(port > 0, "Bad machine port"); - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("type", AUTHORITY_TYPE); List rules = fetchRules(ip, port, AUTHORITY_TYPE, AuthorityRule.class); return Optional.ofNullable(rules) @@ -617,7 +612,7 @@ public class SentinelApiClient { try { String data = JSON .toJSONString(rules.stream().map(ParamFlowRuleEntity::getRule).collect(Collectors.toList())); - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("data", data); return executeCommand(app, ip, port, SET_PARAM_RULE_PATH, params, true).thenCompose(e -> { if (CommandConstants.MSG_SUCCESS.equals(e)) { @@ -656,7 +651,7 @@ public class SentinelApiClient { return AsyncUtils.newFailedFuture(new IllegalArgumentException("Invalid parameter")); } try { - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("mode", String.valueOf(mode)); return executeCommand(ip, port, MODIFY_CLUSTER_MODE_PATH, params, false).thenCompose(e -> { if (CommandConstants.MSG_SUCCESS.equals(e)) { @@ -694,7 +689,7 @@ public class SentinelApiClient { return AsyncUtils.newFailedFuture(new IllegalArgumentException("Invalid parameter")); } try { - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("data", JSON.toJSONString(config)); return executeCommand(app, ip, port, MODIFY_CLUSTER_CLIENT_CONFIG_PATH, params, true).thenCompose(e -> { if (CommandConstants.MSG_SUCCESS.equals(e)) { @@ -718,7 +713,7 @@ public class SentinelApiClient { return AsyncUtils.newFailedFuture(new IllegalArgumentException("Invalid parameter")); } try { - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("data", JSON.toJSONString(config)); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_FLOW_CONFIG_PATH, params, true) .thenCompose(e -> { @@ -743,7 +738,7 @@ public class SentinelApiClient { return AsyncUtils.newFailedFuture(new IllegalArgumentException("Invalid parameter")); } try { - Map params = new HashMap<>(2); + Map params = new HashMap<>(4); params.put("port", config.getPort().toString()); params.put("idleSeconds", config.getIdleSeconds().toString()); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_TRANSPORT_CONFIG_PATH, params, false) @@ -768,7 +763,7 @@ public class SentinelApiClient { return AsyncUtils.newFailedFuture(new IllegalArgumentException("Invalid parameter")); } try { - Map params = new HashMap<>(1); + Map params = new HashMap<>(2); params.put("data", JSON.toJSONString(set)); return executeCommand(app, ip, port, MODIFY_CLUSTER_SERVER_NAMESPACE_SET_PATH, params, true) .thenCompose(e -> { -- Gitee From 02bcacfa53a72a6e0eb1954252a6aeff6c8a2b9f Mon Sep 17 00:00:00 2001 From: Lht Date: Tue, 7 Mar 2023 20:22:31 +0800 Subject: [PATCH 043/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.14 --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d92bac89e..dc6e00195 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.12 | +| hutool | 5.8.14 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 89a18939c..413c7f180 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.12 + 5.8.14 2.7.4 1.8.4 -- Gitee From 43a9089f0ed05e29d189ca5d63b6e1f82246607d Mon Sep 17 00:00:00 2001 From: linck Date: Wed, 8 Mar 2023 17:51:23 +0800 Subject: [PATCH 044/105] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/pig4cloud/pig/admin/controller/DictController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java index da5ab0184..f2fbaa5f4 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java @@ -81,7 +81,7 @@ public class DictController { /** * 通过字典类型查找字典 - * @param type 类型 + * @param key 类型 * @return 同类型字典 */ @GetMapping("/key/{key}") -- Gitee From 677f8e072aee8ba8aaccf19fe5df7f1a1e962313 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 9 Mar 2023 11:49:21 +0800 Subject: [PATCH 045/105] =?UTF-8?q?:recycle:=20Refactoring=20code.=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84retry=20=E7=9B=B8=E5=85=B3=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-common/pig-common-feign/pom.xml | 1 + .../feign/PigFeignAutoConfiguration.java | 17 ++++++-- .../feign/PigFeignRetryAutoConfiguration.java | 40 +++++++++++++++++++ .../common/feign/retry/FeignRetryAspect.java | 2 - ...ot.autoconfigure.AutoConfiguration.imports | 1 + 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100755 pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignRetryAutoConfiguration.java diff --git a/pig-common/pig-common-feign/pom.xml b/pig-common/pig-common-feign/pom.xml index 481aedb76..16aa06327 100755 --- a/pig-common/pig-common-feign/pom.xml +++ b/pig-common/pig-common-feign/pom.xml @@ -67,6 +67,7 @@ org.springframework.retry spring-retry + true diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java index d550babcb..ff9fa669b 100755 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignAutoConfiguration.java @@ -20,11 +20,11 @@ import com.alibaba.cloud.sentinel.feign.SentinelFeignAutoConfiguration; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import com.fasterxml.jackson.databind.ObjectMapper; -import com.pig4cloud.pig.common.feign.retry.FeignRetryAspect; import com.pig4cloud.pig.common.feign.sentinel.ext.PigSentinelFeign; import com.pig4cloud.pig.common.feign.sentinel.handle.PigUrlBlockHandler; import com.pig4cloud.pig.common.feign.sentinel.parser.PigHeaderRequestOriginParser; import feign.Feign; +import okhttp3.OkHttpClient; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -32,6 +32,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; +import java.util.concurrent.TimeUnit; + /** * sentinel 配置 * @@ -62,9 +64,18 @@ public class PigFeignAutoConfiguration { return new PigHeaderRequestOriginParser(); } + /** + * OkHttp 客户端配置 + * @return OkHttp 客户端配 + */ @Bean - public FeignRetryAspect feignRetryAspect() { - return new FeignRetryAspect(); + public OkHttpClient okHttpClient() { + return new OkHttpClient.Builder().retryOnConnectionFailure(false) // 是否开启缓存 + .connectTimeout(30L, TimeUnit.SECONDS) // 连接超时时间 + .readTimeout(30L, TimeUnit.SECONDS) // 读取超时时间 + .writeTimeout(30L, TimeUnit.SECONDS) + .followRedirects(true) // 是否允许重定向 + .build(); } } diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignRetryAutoConfiguration.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignRetryAutoConfiguration.java new file mode 100755 index 000000000..413c35f71 --- /dev/null +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/PigFeignRetryAutoConfiguration.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2020 pig4cloud Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.pig4cloud.pig.common.feign; + +import com.pig4cloud.pig.common.feign.retry.FeignRetryAspect; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.retry.support.RetryTemplate; + +/** + * 重试配置 + * + * @author lengleng + * @date 2023年03月09日 + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnClass(RetryTemplate.class) +public class PigFeignRetryAutoConfiguration { + + @Bean + public FeignRetryAspect feignRetryAspect() { + return new FeignRetryAspect(); + } + +} diff --git a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java index a1a33311f..3119b7c06 100644 --- a/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java +++ b/pig-common/pig-common-feign/src/main/java/com/pig4cloud/pig/common/feign/retry/FeignRetryAspect.java @@ -13,7 +13,6 @@ import org.springframework.retry.backoff.ExponentialBackOffPolicy; import org.springframework.retry.backoff.FixedBackOffPolicy; import org.springframework.retry.policy.SimpleRetryPolicy; import org.springframework.retry.support.RetryTemplate; -import org.springframework.stereotype.Component; import java.lang.reflect.Method; import java.util.HashMap; @@ -28,7 +27,6 @@ import java.util.Map; */ @Slf4j @Aspect -@Component public class FeignRetryAspect { @Around("@annotation(feignRetry)") diff --git a/pig-common/pig-common-feign/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pig-common/pig-common-feign/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index caa9f52f8..4531157b8 100644 --- a/pig-common/pig-common-feign/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/pig-common/pig-common-feign/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,4 @@ com.pig4cloud.pig.common.feign.PigFeignAutoConfiguration +com.pig4cloud.pig.common.feign.PigFeignRetryAutoConfiguration com.pig4cloud.pig.common.feign.sentinel.SentinelAutoConfiguration com.pig4cloud.pig.common.feign.sentinel.handle.GlobalBizExceptionHandler -- Gitee From 5a79ed742eb09938f46c39ac3ee4c5dae2620461 Mon Sep 17 00:00:00 2001 From: linck Date: Thu, 9 Mar 2023 12:25:08 +0800 Subject: [PATCH 046/105] =?UTF-8?q?=E4=BF=AE=E6=94=B9Controller=E7=B1=BB?= =?UTF-8?q?=E5=90=8D=EF=BC=8C=E5=A2=9E=E5=8A=A0Sys=E5=89=8D=E7=BC=80?= =?UTF-8?q?=EF=BC=8C=E4=B8=8EService=E5=92=8CMapper=E7=B1=BB=E5=90=8D?= =?UTF-8?q?=E8=A7=84=E5=88=99=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/{DeptController.java => SysDeptController.java} | 2 +- .../controller/{DictController.java => SysDictController.java} | 2 +- .../controller/{FileController.java => SysFileController.java} | 2 +- .../controller/{LogController.java => SysLogController.java} | 2 +- .../controller/{MenuController.java => SysMenuController.java} | 2 +- ...ailsController.java => SysOauthClientDetailsController.java} | 2 +- .../controller/{PostController.java => SysPostController.java} | 2 +- ...PublicParamController.java => SysPublicParamController.java} | 2 +- .../{RegisterController.java => SysRegisterController.java} | 2 +- .../controller/{RoleController.java => SysRoleController.java} | 2 +- .../controller/{UserController.java => SysUserController.java} | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{DeptController.java => SysDeptController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{DictController.java => SysDictController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{FileController.java => SysFileController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{LogController.java => SysLogController.java} (98%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{MenuController.java => SysMenuController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{OauthClientDetailsController.java => SysOauthClientDetailsController.java} (98%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{PostController.java => SysPostController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{PublicParamController.java => SysPublicParamController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{RegisterController.java => SysRegisterController.java} (97%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{RoleController.java => SysRoleController.java} (99%) rename pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/{UserController.java => SysUserController.java} (99%) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DeptController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DeptController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java index 23bd6dca5..3e7df3a08 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DeptController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java @@ -45,7 +45,7 @@ import java.util.List; @RequestMapping("/dept") @Tag(name = "部门管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class DeptController { +public class SysDeptController { private final SysDeptService sysDeptService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java index f2fbaa5f4..c9b10d1c3 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/DictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java @@ -52,7 +52,7 @@ import java.util.List; @RequestMapping("/dict") @Tag(name = "字典管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class DictController { +public class SysDictController { private final SysDictItemService sysDictItemService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysFileController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysFileController.java index 2e327244b..59ed98684 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/FileController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysFileController.java @@ -51,7 +51,7 @@ import javax.servlet.http.HttpServletResponse; @RequestMapping("/sys-file") @Tag(name = "文件管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class FileController { +public class SysFileController { private final SysFileService sysFileService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/LogController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java similarity index 98% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/LogController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java index ff8c7f25f..f33d031dc 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/LogController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysLogController.java @@ -46,7 +46,7 @@ import java.util.List; @RequestMapping("/log") @Tag(name = "日志管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class LogController { +public class SysLogController { private final SysLogService sysLogService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysMenuController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysMenuController.java index 0db7ba433..6b9e057e2 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/MenuController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysMenuController.java @@ -44,7 +44,7 @@ import java.util.stream.Collectors; @RequestMapping("/menu") @Tag(name = "菜单管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class MenuController { +public class SysMenuController { private final SysMenuService sysMenuService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysOauthClientDetailsController.java similarity index 98% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysOauthClientDetailsController.java index 52ec3bc85..d01aad333 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/OauthClientDetailsController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysOauthClientDetailsController.java @@ -47,7 +47,7 @@ import java.util.List; @RequestMapping("/client") @Tag(name = "客户端管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class OauthClientDetailsController { +public class SysOauthClientDetailsController { private final SysOauthClientDetailsService sysOauthClientDetailsService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PostController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPostController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PostController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPostController.java index e2ed6c0ee..b8bffb48d 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PostController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPostController.java @@ -46,7 +46,7 @@ import java.util.List; @RequestMapping("/post") @Tag(name = "岗位管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class PostController { +public class SysPostController { private final SysPostService sysPostService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPublicParamController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPublicParamController.java index d6be57903..b39757181 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/PublicParamController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysPublicParamController.java @@ -44,7 +44,7 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/param") @Tag(name = "公共参数配置") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class PublicParamController { +public class SysPublicParamController { private final SysPublicParamService sysPublicParamService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RegisterController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRegisterController.java similarity index 97% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RegisterController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRegisterController.java index a5a0ab492..8ee36fec9 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RegisterController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRegisterController.java @@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/register") @RequiredArgsConstructor @ConditionalOnProperty(name = "register.user", matchIfMissing = true) -public class RegisterController { +public class SysRegisterController { private final SysUserService userService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RoleController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRoleController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RoleController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRoleController.java index 570ac8c61..fc657136f 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/RoleController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysRoleController.java @@ -48,7 +48,7 @@ import java.util.List; @RequestMapping("/role") @Tag(name = "角色管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class RoleController { +public class SysRoleController { private final SysRoleService sysRoleService; diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysUserController.java similarity index 99% rename from pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java rename to pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysUserController.java index 28b47d7ea..ae65ff8f8 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/UserController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysUserController.java @@ -58,7 +58,7 @@ import java.util.Set; @RequestMapping("/user") @Tag(name = "用户管理模块") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class UserController { +public class SysUserController { private final SysUserService userService; -- Gitee From b7d1f7eccf8d3c1bfd6cd3ab3ae466493f24d0bc Mon Sep 17 00:00:00 2001 From: linck Date: Fri, 10 Mar 2023 17:50:19 +0800 Subject: [PATCH 047/105] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84BeanUtils.copyProperties=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/admin/service/impl/SysDeptServiceImpl.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java index 319fc6bdf..ade640ef2 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDeptServiceImpl.java @@ -29,7 +29,6 @@ import com.pig4cloud.pig.admin.service.SysDeptRelationService; import com.pig4cloud.pig.admin.service.SysDeptService; import com.pig4cloud.pig.common.security.util.SecurityUtils; import lombok.RequiredArgsConstructor; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -58,10 +57,8 @@ public class SysDeptServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public Boolean saveDept(SysDept dept) { - SysDept sysDept = new SysDept(); - BeanUtils.copyProperties(dept, sysDept); - this.save(sysDept); - sysDeptRelationService.saveDeptRelation(sysDept); + this.save(dept); + sysDeptRelationService.saveDeptRelation(dept); return Boolean.TRUE; } -- Gitee From d2dff1cf9f2dca3b7b614a1479b8a46d8626ee0b Mon Sep 17 00:00:00 2001 From: Lht Date: Fri, 10 Mar 2023 18:20:35 +0800 Subject: [PATCH 048/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.15 --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dc6e00195..7cb0b0422 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ | Spring Cloud Alibaba | 2021.0.4.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.14 | +| hutool | 5.8.15 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 413c7f180..2bad618be 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.14 + 5.8.15 2.7.4 1.8.4 -- Gitee From b4a36f6a1b369fd60d252623e50274ffbcf28e01 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 14 Mar 2023 13:46:13 +0800 Subject: [PATCH 049/105] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20close=20#I6?= =?UTF-8?q?L95T=20=E6=97=A5=E5=BF=97=E7=AE=A1=E7=90=86=E6=97=A0ip=E5=92=8C?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PigAuthenticationFailureEventHandler.java | 3 +++ .../PigAuthenticationSuccessEventHandler.java | 2 ++ pig-common/pig-common-log/pom.xml | 4 ++++ .../pig/common/log/util/SysLogUtils.java | 22 +++++++++++++++++++ .../PigCustomOpaqueTokenIntrospector.java | 9 +++++++- .../pig/common/security/service/PigUser.java | 4 +++- pom.xml | 9 -------- 7 files changed, 42 insertions(+), 11 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationFailureEventHandler.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationFailureEventHandler.java index a12b2a99d..979282e17 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationFailureEventHandler.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationFailureEventHandler.java @@ -23,6 +23,7 @@ import com.pig4cloud.pig.common.core.constant.SecurityConstants; import com.pig4cloud.pig.common.core.util.MsgUtils; import com.pig4cloud.pig.common.core.util.R; import com.pig4cloud.pig.common.core.util.SpringContextHolder; +import com.pig4cloud.pig.common.core.util.WebUtils; import com.pig4cloud.pig.common.log.event.SysLogEvent; import com.pig4cloud.pig.common.log.util.LogTypeEnum; import com.pig4cloud.pig.common.log.util.SysLogUtils; @@ -75,6 +76,8 @@ public class PigAuthenticationFailureEventHandler implements AuthenticationFailu Long endTime = System.currentTimeMillis(); logVo.setTime(endTime - startTime); } + + logVo.setServiceId(WebUtils.getClientId()); logVo.setCreateBy(username); logVo.setUpdateBy(username); SpringContextHolder.publishEvent(new SysLogEvent(logVo)); diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java index b0e04323a..09e6f01f8 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/handler/PigAuthenticationSuccessEventHandler.java @@ -84,6 +84,8 @@ public class PigAuthenticationSuccessEventHandler implements AuthenticationSucce Long endTime = System.currentTimeMillis(); logVo.setTime(endTime - startTime); } + + logVo.setServiceId(accessTokenAuthentication.getRegisteredClient().getClientId()); logVo.setCreateBy(userInfo.getName()); logVo.setUpdateBy(userInfo.getName()); SpringContextHolder.publishEvent(new SysLogEvent(logVo)); diff --git a/pig-common/pig-common-log/pom.xml b/pig-common/pig-common-log/pom.xml index e124c8173..8c3dacfac 100755 --- a/pig-common/pig-common-log/pom.xml +++ b/pig-common/pig-common-log/pom.xml @@ -54,5 +54,9 @@ org.springframework.security spring-security-core + + org.springframework.security + spring-security-oauth2-core + diff --git a/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java b/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java index a748f19bd..6046cfe97 100755 --- a/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java +++ b/pig-common/pig-common-log/src/main/java/com/pig4cloud/pig/common/log/util/SysLogUtils.java @@ -16,10 +16,12 @@ package com.pig4cloud.pig.common.log.util; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.URLUtil; import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.http.HttpUtil; import com.pig4cloud.pig.admin.api.entity.SysLog; +import com.pig4cloud.pig.common.core.constant.SecurityConstants; import lombok.experimental.UtilityClass; import org.springframework.core.LocalVariableTableParameterNameDiscoverer; import org.springframework.expression.EvaluationContext; @@ -29,6 +31,7 @@ import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.http.HttpHeaders; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -56,9 +59,28 @@ public class SysLogUtils { sysLog.setParams(HttpUtil.toParams(request.getParameterMap())); sysLog.setCreateBy(getUsername()); sysLog.setUpdateBy(getUsername()); + sysLog.setServiceId(getClientId()); return sysLog; } + /** + * 获取客户端 + * @return clientId + */ + private String getClientId() { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + if (authentication == null) { + return null; + } + + Object principal = authentication.getPrincipal(); + if (principal instanceof OAuth2AuthenticatedPrincipal) { + OAuth2AuthenticatedPrincipal auth2Authentication = (OAuth2AuthenticatedPrincipal) principal; + return MapUtil.getStr(auth2Authentication.getAttributes(), SecurityConstants.CLIENT_ID); + } + return null; + } + /** * 获取用户名称 * @return username diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java index 631a99e6c..96148d106 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigCustomOpaqueTokenIntrospector.java @@ -1,6 +1,7 @@ package com.pig4cloud.pig.common.security.component; import cn.hutool.extra.spring.SpringUtil; +import com.pig4cloud.pig.common.core.constant.SecurityConstants; import com.pig4cloud.pig.common.security.service.PigUser; import com.pig4cloud.pig.common.security.service.PigUserDetailsService; import lombok.RequiredArgsConstructor; @@ -71,7 +72,13 @@ public class PigCustomOpaqueTokenIntrospector implements OpaqueTokenIntrospector catch (Exception ex) { log.error("资源服务器 introspect Token error {}", ex.getLocalizedMessage()); } - return (PigUser) userDetails; + + // 注入扩展属性,方便上下文获取客户端ID + PigUser user = (PigUser) userDetails; + Objects.requireNonNull(user) + .getAttributes() + .put(SecurityConstants.CLIENT_ID, oldAuthorization.getRegisteredClientId()); + return user; } } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUser.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUser.java index 36f48f9e8..723ac02da 100755 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUser.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigUser.java @@ -36,6 +36,8 @@ public class PigUser extends User implements OAuth2AuthenticatedPrincipal { private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + private final Map attributes = new HashMap<>(); + /** * 用户ID */ @@ -71,7 +73,7 @@ public class PigUser extends User implements OAuth2AuthenticatedPrincipal { */ @Override public Map getAttributes() { - return new HashMap<>(); + return this.attributes; } @Override diff --git a/pom.xml b/pom.xml index d3a2fcc00..e081cafb5 100755 --- a/pom.xml +++ b/pom.xml @@ -230,15 +230,6 @@ io.spring.javaformat spring-javaformat-maven-plugin ${spring.checkstyle.plugin} - - - validate - true - - validate - - - -- Gitee From 0283b588d81a165a48a8d39694f6b379a66fe9cc Mon Sep 17 00:00:00 2001 From: lbw Date: Wed, 15 Mar 2023 10:08:45 +0800 Subject: [PATCH 050/105] :arrow_up: Upgrading dependencies. spring-boot-admin 2.7.10 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e081cafb5..4ab2c8167 100755 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ UTF-8 1.8 1.8 - 2.7.9 + 2.7.10 0.4.1 3.6.0 2.2.2 -- Gitee From 0126b6f0d46acbdf074a77d896df7ee2b0098251 Mon Sep 17 00:00:00 2001 From: lbw Date: Wed, 15 Mar 2023 10:29:40 +0800 Subject: [PATCH 051/105] =?UTF-8?q?:memo:=20Writing=20docs.=20=E6=95=B4?= =?UTF-8?q?=E7=90=86SQL=20=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig.sql | 123 ++++++++++++++++++++++----------------------- db/pig_codegen.sql | 42 ++++++++-------- 2 files changed, 81 insertions(+), 84 deletions(-) diff --git a/db/pig.sql b/db/pig.sql index 9850a86f0..7d162a28b 100644 --- a/db/pig.sql +++ b/db/pig.sql @@ -7,21 +7,19 @@ SET FOREIGN_KEY_CHECKS = 0; USE `pig`; --- ---------------------------- --- Table structure for sys_dept --- ---------------------------- DROP TABLE IF EXISTS `sys_dept` ; +-- 创建表 `sys_dept` CREATE TABLE `sys_dept` ( - `dept_id` bigint NOT NULL, - `name` varchar(50) COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称', - `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序', - `del_flag` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '是否删除 -1:已删除 0:正常', - `parent_id` bigint DEFAULT NULL, - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', - PRIMARY KEY (`dept_id`) + `dept_id` bigint NOT NULL COMMENT '部门ID', + `name` varchar(50) COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称', + `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序值', + `del_flag` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记 -1:已删除 0:正常', + `parent_id` bigint DEFAULT NULL COMMENT '父部门ID', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`dept_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门管理'; -- ---------------------------- @@ -37,16 +35,14 @@ INSERT INTO `sys_dept` VALUES (6, '产品中心', 0, '0', 3, '2020-03-13 13:15:4 INSERT INTO `sys_dept` VALUES (7, '测试中心', 0, '0', 3, '2020-03-13 13:16:02', ' ', '2021-12-31 06:59:56', ' '); COMMIT; --- ---------------------------- --- Table structure for sys_dept_relation --- ---------------------------- DROP TABLE IF EXISTS `sys_dept_relation`; +-- 创建表 `sys_dept_relation` CREATE TABLE `sys_dept_relation` ( - `ancestor` bigint NOT NULL, - `descendant` bigint NOT NULL, - PRIMARY KEY (`ancestor`,`descendant`), - KEY `idx1` (`ancestor`), - KEY `idx2` (`descendant`) + `ancestor` bigint NOT NULL COMMENT '祖先节点', + `descendant` bigint NOT NULL COMMENT '后代节点', + PRIMARY KEY (`ancestor`,`descendant`), + KEY `idx1` (`ancestor`), + KEY `idx2` (`descendant`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门关系表'; -- ---------------------------- @@ -173,20 +169,21 @@ COMMIT; -- Table structure for sys_public_param -- ---------------------------- DROP TABLE IF EXISTS `sys_public_param`; +-- 创建表 `sys_public_param` CREATE TABLE `sys_public_param` ( - `public_id` bigint(0) NOT NULL COMMENT '编号', - `public_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `public_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `public_value` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0', - `validate_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', - `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', - `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', - `public_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0', - `system_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0', - PRIMARY KEY (`public_id`) USING BTREE + `public_id` bigint(0) NOT NULL COMMENT '编号', + `public_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数名称', + `public_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数键名', + `public_value` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数键值', + `status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态,1-启用,0-禁用', + `validate_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验码', + `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', + `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', + `public_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '参数类型,1-系统参数,2-业务参数', + `system_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是否为系统内置参数,1-是,0-否', + PRIMARY KEY (`public_id`) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci COMMENT = '公共参数配置表'; -- ---------------------------- @@ -203,18 +200,18 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `sys_file`; CREATE TABLE `sys_file` ( - `id` bigint NOT NULL, - `file_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `bucket_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `original` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `file_size` bigint DEFAULT NULL COMMENT '文件大小', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '0-正常,1-删除', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', - PRIMARY KEY (`id`) USING BTREE + `id` bigint NOT NULL COMMENT '文件ID', + `file_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名称', + `bucket_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件存储桶名称', + `original` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '原始文件名', + `type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件类型', + `file_size` bigint DEFAULT NULL COMMENT '文件大小', + `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标志:0-正常,1-删除', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', + `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='文件管理表'; -- ---------------------------- @@ -427,17 +424,17 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `sys_role`; CREATE TABLE `sys_role` ( - `role_id` bigint NOT NULL, - `role_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `role_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `role_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标识(0-正常,1-删除)', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '修改人', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - PRIMARY KEY (`role_id`), - UNIQUE KEY `role_idx1_role_code` (`role_code`) + `role_id` bigint NOT NULL COMMENT '角色ID', + `role_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', + `role_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色代码', + `role_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色描述', + `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标识:0-正常,1-删除', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '修改人', + `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + PRIMARY KEY (`role_id`), + UNIQUE KEY `role_idx1_role_code` (`role_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统角色表'; -- ---------------------------- @@ -453,9 +450,9 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `sys_role_menu`; CREATE TABLE `sys_role_menu` ( - `role_id` bigint NOT NULL, - `menu_id` bigint NOT NULL, - PRIMARY KEY (`role_id`,`menu_id`) + `role_id` bigint NOT NULL COMMENT '角色ID', + `menu_id` bigint NOT NULL COMMENT '菜单ID', + PRIMARY KEY (`role_id`,`menu_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='角色菜单表'; -- ---------------------------- @@ -558,9 +555,9 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `sys_user_role`; CREATE TABLE `sys_user_role` ( - `user_id` bigint NOT NULL, - `role_id` bigint NOT NULL, - PRIMARY KEY (`user_id`,`role_id`) + `user_id` bigint NOT NULL COMMENT '用户ID', + `role_id` bigint NOT NULL COMMENT '角色ID', + PRIMARY KEY (`user_id`,`role_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户角色表'; -- ---------------------------- diff --git a/db/pig_codegen.sql b/db/pig_codegen.sql index 7f8859f29..e78920aec 100644 --- a/db/pig_codegen.sql +++ b/db/pig_codegen.sql @@ -12,17 +12,17 @@ USE `pig_codegen`; -- ---------------------------- DROP TABLE IF EXISTS `gen_datasource_conf`; CREATE TABLE `gen_datasource_conf` ( - `id` bigint NOT NULL, - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数据源名称', - `url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'jdbc-url', - `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名', - `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', - PRIMARY KEY (`id`) USING BTREE + `id` bigint NOT NULL COMMENT '数据源ID', + `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数据源名称', + `url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'jdbc-url', + `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名', + `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码', + `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='数据源表'; -- ---------------------------- @@ -36,16 +36,16 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `gen_form_conf`; CREATE TABLE `gen_form_conf` ( - `id` bigint NOT NULL, - `table_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '表名', - `form_info` json NOT NULL COMMENT '表单信息', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', - PRIMARY KEY (`id`) USING BTREE, - KEY `table_name` (`table_name`) + `id` bigint NOT NULL COMMENT '表单配置ID', + `table_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '表名', + `form_info` json NOT NULL COMMENT '表单信息', + `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`id`) USING BTREE, + KEY `table_name` (`table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='表单配置'; -- ---------------------------- -- Gitee From 907eec18010f2d93c887f4d850f67a3893be5689 Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 17 Mar 2023 16:44:49 +0800 Subject: [PATCH 052/105] :sparkles: Introducing new features.: support client_secret_header & client_secret_post --- .../service/PigRemoteRegisteredClientRepository.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java index 2d0b8ade3..65583c1e1 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/service/PigRemoteRegisteredClientRepository.java @@ -95,7 +95,11 @@ public class PigRemoteRegisteredClientRepository implements RegisteredClientRepo RegisteredClient.Builder builder = RegisteredClient.withId(clientDetails.getClientId()) .clientId(clientDetails.getClientId()) .clientSecret(SecurityConstants.NOOP + clientDetails.getClientSecret()) - .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC); + .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_POST) + .clientAuthenticationMethods(clientAuthenticationMethods -> { + clientAuthenticationMethods.add(ClientAuthenticationMethod.CLIENT_SECRET_BASIC); + clientAuthenticationMethods.add(ClientAuthenticationMethod.CLIENT_SECRET_POST); + }); // 授权模式 Optional.ofNullable(clientDetails.getAuthorizedGrantTypes()) -- Gitee From e0a75abeb0fbf804b8702d605470726faaa37da5 Mon Sep 17 00:00:00 2001 From: zhao Date: Tue, 21 Mar 2023 09:00:36 +0800 Subject: [PATCH 053/105] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=EF=BC=8C=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/auth/support/core/PigDaoAuthenticationProvider.java | 1 - 1 file changed, 1 deletion(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/core/PigDaoAuthenticationProvider.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/core/PigDaoAuthenticationProvider.java index 8141c9982..1be78b534 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/core/PigDaoAuthenticationProvider.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/core/PigDaoAuthenticationProvider.java @@ -89,7 +89,6 @@ public class PigDaoAuthenticationProvider extends AbstractUserDetailsAuthenticat @SneakyThrows @Override - protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication) { prepareTimingAttackProtection(); HttpServletRequest request = WebUtils.getRequest() -- Gitee From 893ca00a0d5cf53f508defd5a45b24570867b08e Mon Sep 17 00:00:00 2001 From: jiakang Date: Wed, 22 Mar 2023 20:11:22 +0800 Subject: [PATCH 054/105] =?UTF-8?q?=E5=BD=93=E8=8E=B7=E5=8F=96token?= =?UTF-8?q?=E5=8F=82=E6=95=B0grant=5Ftype=E4=B8=8D=E4=B8=BApassword?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E9=89=B4=E6=9D=83=E6=8E=A5=E5=8F=A3=E4=B8=80?= =?UTF-8?q?=E7=9B=B4=E6=8A=A5=E2=80=98=E7=94=A8=E6=88=B7=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E2=80=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...esourceOwnerBaseAuthenticationProvider.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java index 0f886493a..0ef6892c1 100644 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/support/base/OAuth2ResourceOwnerBaseAuthenticationProvider.java @@ -111,29 +111,29 @@ public abstract class OAuth2ResourceOwnerBaseAuthenticationProvider authorizedScopes; // Default to configured scopes - if (!CollectionUtils.isEmpty(resouceOwnerBaseAuthentication.getScopes())) { - for (String requestedScope : resouceOwnerBaseAuthentication.getScopes()) { + if (!CollectionUtils.isEmpty(resourceOwnerBaseAuthentication.getScopes())) { + for (String requestedScope : resourceOwnerBaseAuthentication.getScopes()) { if (!registeredClient.getScopes().contains(requestedScope)) { throw new OAuth2AuthenticationException(OAuth2ErrorCodes.INVALID_SCOPE); } } - authorizedScopes = new LinkedHashSet<>(resouceOwnerBaseAuthentication.getScopes()); + authorizedScopes = new LinkedHashSet<>(resourceOwnerBaseAuthentication.getScopes()); } else { throw new ScopeException(OAuth2ErrorCodesExpand.SCOPE_IS_EMPTY); } - Map reqParameters = resouceOwnerBaseAuthentication.getAdditionalParameters(); + Map reqParameters = resourceOwnerBaseAuthentication.getAdditionalParameters(); try { UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = buildToken(reqParameters); @@ -149,14 +149,14 @@ public abstract class OAuth2ResourceOwnerBaseAuthenticationProvider Date: Thu, 23 Mar 2023 19:54:13 +0800 Subject: [PATCH 055/105] :arrow_up: Upgrading dependencies. up spring-cloud-alibaba 2021.0.5.0 --- pom.xml | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 4ab2c8167..979a1d31c 100755 --- a/pom.xml +++ b/pom.xml @@ -27,9 +27,9 @@ https://www.pig4cloud.com - 2.7.9 + 2.7.10 2021.0.6 - 2021.0.4.0 + 2021.0.5.0 UTF-8 1.8 1.8 @@ -159,13 +159,6 @@ true - - - - repackage - - - io.fabric8 @@ -240,8 +233,8 @@ dev - nacos - nacos + nacos + nacos -- Gitee From 7b0d08bd7c5751d9a670c43767b89f71aff53cb7 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 23 Mar 2023 19:54:24 +0800 Subject: [PATCH 056/105] :arrow_up: Upgrading dependencies. up springboot 2.7.10 --- README.md | 4 ++-- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7cb0b0422..d24389ec0 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,9 @@ | 依赖 | 版本 | | ---------------------- |------------| -| Spring Boot | 2.7.9 | +| Spring Boot | 2.7.10 | | Spring Cloud | 2021.0.6 | -| Spring Cloud Alibaba | 2021.0.4.0 | +| Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | | hutool | 5.8.15 | diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 2bad618be..d1a9980fa 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -15,7 +15,7 @@ ${project.version} - 2.7.9 + 2.7.10 UTF-8 2.17.1 1.8 -- Gitee From 37325ad3121a33bfdad36f5dc6601cb878104944 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 23 Mar 2023 19:55:58 +0800 Subject: [PATCH 057/105] :bookmark: :bookmark: :bookmark: 3.6.7 --- pig-auth/pom.xml | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- pig-common/pig-common-core/pom.xml | 2 +- pig-common/pig-common-datasource/pom.xml | 2 +- pig-common/pig-common-feign/pom.xml | 2 +- pig-common/pig-common-job/pom.xml | 2 +- pig-common/pig-common-log/pom.xml | 2 +- pig-common/pig-common-mybatis/pom.xml | 2 +- pig-common/pig-common-seata/pom.xml | 2 +- pig-common/pig-common-security/pom.xml | 2 +- pig-common/pig-common-swagger/pom.xml | 2 +- pig-common/pig-common-xss/pom.xml | 2 +- pig-common/pom.xml | 2 +- pig-gateway/pom.xml | 2 +- pig-register/pom.xml | 2 +- pig-upms/pig-upms-api/pom.xml | 2 +- pig-upms/pig-upms-biz/pom.xml | 2 +- pig-upms/pom.xml | 2 +- pig-visual/pig-codegen/pom.xml | 2 +- pig-visual/pig-monitor/pom.xml | 2 +- pig-visual/pig-sentinel-dashboard/pom.xml | 2 +- pig-visual/pig-xxl-job-admin/pom.xml | 2 +- pig-visual/pom.xml | 2 +- pom.xml | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pig-auth/pom.xml b/pig-auth/pom.xml index c4fb34243..9557d78de 100755 --- a/pig-auth/pom.xml +++ b/pig-auth/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-auth diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index d1a9980fa..561a74f4e 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common-bom - 3.6.6 + 3.6.7 pom pig-common-bom diff --git a/pig-common/pig-common-core/pom.xml b/pig-common/pig-common-core/pom.xml index 8619dd424..6b3a2332e 100755 --- a/pig-common/pig-common-core/pom.xml +++ b/pig-common/pig-common-core/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-core diff --git a/pig-common/pig-common-datasource/pom.xml b/pig-common/pig-common-datasource/pom.xml index a993c050d..e03d585e0 100644 --- a/pig-common/pig-common-datasource/pom.xml +++ b/pig-common/pig-common-datasource/pom.xml @@ -21,7 +21,7 @@ pig-common com.pig4cloud - 3.6.6 + 3.6.7 4.0.0 diff --git a/pig-common/pig-common-feign/pom.xml b/pig-common/pig-common-feign/pom.xml index 16aa06327..0f2332db2 100755 --- a/pig-common/pig-common-feign/pom.xml +++ b/pig-common/pig-common-feign/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 4.0.0 diff --git a/pig-common/pig-common-job/pom.xml b/pig-common/pig-common-job/pom.xml index 2f260acef..6c5b166af 100755 --- a/pig-common/pig-common-job/pom.xml +++ b/pig-common/pig-common-job/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-job diff --git a/pig-common/pig-common-log/pom.xml b/pig-common/pig-common-log/pom.xml index 8c3dacfac..b01f6f384 100755 --- a/pig-common/pig-common-log/pom.xml +++ b/pig-common/pig-common-log/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-log diff --git a/pig-common/pig-common-mybatis/pom.xml b/pig-common/pig-common-mybatis/pom.xml index 04cab5b2a..c2d0b5daf 100755 --- a/pig-common/pig-common-mybatis/pom.xml +++ b/pig-common/pig-common-mybatis/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-mybatis diff --git a/pig-common/pig-common-seata/pom.xml b/pig-common/pig-common-seata/pom.xml index acaa0879b..d227a7fc8 100755 --- a/pig-common/pig-common-seata/pom.xml +++ b/pig-common/pig-common-seata/pom.xml @@ -23,7 +23,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-seata diff --git a/pig-common/pig-common-security/pom.xml b/pig-common/pig-common-security/pom.xml index db14760c6..46652e783 100755 --- a/pig-common/pig-common-security/pom.xml +++ b/pig-common/pig-common-security/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-security diff --git a/pig-common/pig-common-swagger/pom.xml b/pig-common/pig-common-swagger/pom.xml index 28c55dd5e..500159851 100644 --- a/pig-common/pig-common-swagger/pom.xml +++ b/pig-common/pig-common-swagger/pom.xml @@ -24,7 +24,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-swagger diff --git a/pig-common/pig-common-xss/pom.xml b/pig-common/pig-common-xss/pom.xml index 254eadf81..615fd489d 100755 --- a/pig-common/pig-common-xss/pom.xml +++ b/pig-common/pig-common-xss/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-common - 3.6.6 + 3.6.7 pig-common-xss diff --git a/pig-common/pom.xml b/pig-common/pom.xml index 619b5fa60..15908dee5 100755 --- a/pig-common/pom.xml +++ b/pig-common/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-common diff --git a/pig-gateway/pom.xml b/pig-gateway/pom.xml index a15a39523..9e4ea2788 100755 --- a/pig-gateway/pom.xml +++ b/pig-gateway/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-gateway diff --git a/pig-register/pom.xml b/pig-register/pom.xml index 11a17fbd7..afed927c1 100755 --- a/pig-register/pom.xml +++ b/pig-register/pom.xml @@ -18,7 +18,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-register diff --git a/pig-upms/pig-upms-api/pom.xml b/pig-upms/pig-upms-api/pom.xml index 0cb6dd892..9fae96276 100755 --- a/pig-upms/pig-upms-api/pom.xml +++ b/pig-upms/pig-upms-api/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.6 + 3.6.7 pig-upms-api diff --git a/pig-upms/pig-upms-biz/pom.xml b/pig-upms/pig-upms-biz/pom.xml index df4d2cc69..ce53f69ed 100644 --- a/pig-upms/pig-upms-biz/pom.xml +++ b/pig-upms/pig-upms-biz/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-upms - 3.6.6 + 3.6.7 pig-upms-biz diff --git a/pig-upms/pom.xml b/pig-upms/pom.xml index e69d83ce3..629b8138d 100755 --- a/pig-upms/pom.xml +++ b/pig-upms/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-upms diff --git a/pig-visual/pig-codegen/pom.xml b/pig-visual/pig-codegen/pom.xml index 7fc089561..6c5ebb1ec 100755 --- a/pig-visual/pig-codegen/pom.xml +++ b/pig-visual/pig-codegen/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig-visual - 3.6.6 + 3.6.7 pig-codegen diff --git a/pig-visual/pig-monitor/pom.xml b/pig-visual/pig-monitor/pom.xml index 9c587b18c..1be8a1170 100755 --- a/pig-visual/pig-monitor/pom.xml +++ b/pig-visual/pig-monitor/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig-visual - 3.6.6 + 3.6.7 pig-monitor diff --git a/pig-visual/pig-sentinel-dashboard/pom.xml b/pig-visual/pig-sentinel-dashboard/pom.xml index 46307f602..9a3fb87ea 100755 --- a/pig-visual/pig-sentinel-dashboard/pom.xml +++ b/pig-visual/pig-sentinel-dashboard/pom.xml @@ -6,7 +6,7 @@ com.pig4cloud pig-visual - 3.6.6 + 3.6.7 pig-sentinel-dashboard diff --git a/pig-visual/pig-xxl-job-admin/pom.xml b/pig-visual/pig-xxl-job-admin/pom.xml index f49f2dac2..1478ed702 100644 --- a/pig-visual/pig-xxl-job-admin/pom.xml +++ b/pig-visual/pig-xxl-job-admin/pom.xml @@ -4,7 +4,7 @@ com.pig4cloud pig-visual - 3.6.6 + 3.6.7 pig-xxl-job-admin diff --git a/pig-visual/pom.xml b/pig-visual/pom.xml index 323bf7db4..9469be1b5 100755 --- a/pig-visual/pom.xml +++ b/pig-visual/pom.xml @@ -21,7 +21,7 @@ com.pig4cloud pig - 3.6.6 + 3.6.7 pig-visual diff --git a/pom.xml b/pom.xml index 979a1d31c..9b572a459 100755 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ com.pig4cloud pig ${project.artifactId} - 3.6.6 + 3.6.7 pom https://www.pig4cloud.com -- Gitee From 48448fcbb29dae9d7de2937b7e8586003567fb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B8=B8=E5=9D=A4?= Date: Tue, 28 Mar 2023 17:54:05 +0800 Subject: [PATCH 058/105] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84if=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/common/security/util/OAuth2EndpointUtils.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java index be8b7cb1d..017cf3f0a 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/OAuth2EndpointUtils.java @@ -28,10 +28,8 @@ public class OAuth2EndpointUtils { Map parameterMap = request.getParameterMap(); MultiValueMap parameters = new LinkedMultiValueMap<>(parameterMap.size()); parameterMap.forEach((key, values) -> { - if (values.length > 0) { - for (String value : values) { - parameters.add(key, value); - } + for (String value : values) { + parameters.add(key, value); } }); return parameters; -- Gitee From 5dad371547354287975b4b1c2cb3d4b31cee1914 Mon Sep 17 00:00:00 2001 From: Lht Date: Wed, 29 Mar 2023 19:02:55 +0800 Subject: [PATCH 059/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.16 --- README.md | 4 ++-- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d24389ec0..7b7b13b4b 100644 --- a/README.md +++ b/README.md @@ -48,12 +48,12 @@ | 依赖 | 版本 | | ---------------------- |------------| -| Spring Boot | 2.7.10 | +| Spring Boot | 2.7.10 | | Spring Cloud | 2021.0.6 | | Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.15 | +| hutool | 5.8.16 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 561a74f4e..4cbd5bbc9 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.15 + 5.8.16 2.7.4 1.8.4 -- Gitee From 6991cdad557f4b9d79bba50d6aeede4edfe30eb2 Mon Sep 17 00:00:00 2001 From: Lht Date: Thu, 30 Mar 2023 19:02:47 +0800 Subject: [PATCH 060/105] :arrow_up: Upgrading dependencies. UP xxl-job 2.4.0 --- .../admin/controller/JobGroupController.java | 7 +++++++ .../job/admin/controller/JobLogController.java | 18 ++++++++++++------ .../main/resources/i18n/message_en.properties | 2 +- .../resources/i18n/message_zh_CN.properties | 2 +- .../resources/i18n/message_zh_TC.properties | 2 +- .../resources/static/js/joblog.detail.1.js | 2 -- .../templates/joblog/joblog.detail.ftl | 2 -- pom.xml | 2 +- 8 files changed, 23 insertions(+), 14 deletions(-) mode change 100755 => 100644 pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java mode change 100755 => 100644 pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java mode change 100755 => 100644 pig-visual/pig-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js mode change 100755 => 100644 pig-visual/pig-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java old mode 100755 new mode 100644 index f52e941bd..87c5da426 --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java @@ -1,5 +1,6 @@ package com.xxl.job.admin.controller; +import com.xxl.job.admin.controller.annotation.PermissionLimit; import com.xxl.job.admin.core.model.XxlJobGroup; import com.xxl.job.admin.core.model.XxlJobRegistry; import com.xxl.job.admin.core.util.I18nUtil; @@ -37,12 +38,14 @@ public class JobGroupController { private XxlJobRegistryDao xxlJobRegistryDao; @RequestMapping + @PermissionLimit(adminuser = true) public String index(Model model) { return "jobgroup/jobgroup.index"; } @RequestMapping("/pageList") @ResponseBody + @PermissionLimit(adminuser = true) public Map pageList(HttpServletRequest request, @RequestParam(required = false, defaultValue = "0") int start, @RequestParam(required = false, defaultValue = "10") int length, String appname, String title) { @@ -61,6 +64,7 @@ public class JobGroupController { @RequestMapping("/save") @ResponseBody + @PermissionLimit(adminuser = true) public ReturnT save(XxlJobGroup xxlJobGroup) { // valid @@ -107,6 +111,7 @@ public class JobGroupController { @RequestMapping("/update") @ResponseBody + @PermissionLimit(adminuser = true) public ReturnT update(XxlJobGroup xxlJobGroup) { // valid if (xxlJobGroup.getAppname() == null || xxlJobGroup.getAppname().trim().length() == 0) { @@ -177,6 +182,7 @@ public class JobGroupController { @RequestMapping("/remove") @ResponseBody + @PermissionLimit(adminuser = true) public ReturnT remove(int id) { // valid @@ -196,6 +202,7 @@ public class JobGroupController { @RequestMapping("/loadById") @ResponseBody + @PermissionLimit(adminuser = true) public ReturnT loadById(int id) { XxlJobGroup jobGroup = xxlJobGroupDao.load(id); return jobGroup != null ? new ReturnT(jobGroup) diff --git a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java old mode 100755 new mode 100644 index d7225dd12..8aad8291d --- a/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java +++ b/pig-visual/pig-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java @@ -138,23 +138,29 @@ public class JobLogController { model.addAttribute("triggerCode", jobLog.getTriggerCode()); model.addAttribute("handleCode", jobLog.getHandleCode()); - model.addAttribute("executorAddress", jobLog.getExecutorAddress()); - model.addAttribute("triggerTime", jobLog.getTriggerTime().getTime()); model.addAttribute("logId", jobLog.getId()); return "joblog/joblog.detail"; } @RequestMapping("/logDetailCat") @ResponseBody - public ReturnT logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum) { + public ReturnT logDetailCat(long logId, int fromLineNum) { try { - ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress); - ReturnT logResult = executorBiz.log(new LogParam(triggerTime, logId, fromLineNum)); + // valid + XxlJobLog jobLog = xxlJobLogDao.load(logId); // todo, need to improve + // performance + if (jobLog == null) { + return new ReturnT(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_logid_unvalid")); + } + + // log cat + ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(jobLog.getExecutorAddress()); + ReturnT logResult = executorBiz + .log(new LogParam(jobLog.getTriggerTime().getTime(), logId, fromLineNum)); // is end if (logResult.getContent() != null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) { - XxlJobLog jobLog = xxlJobLogDao.load(logId); if (jobLog.getHandleCode() > 0) { logResult.getContent().setEnd(true); } diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_en.properties b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_en.properties index 001f841a4..589d9eb4f 100644 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_en.properties +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_en.properties @@ -1,6 +1,6 @@ admin_name=Scheduling Center admin_name_full=Distributed Task Scheduling Platform XXL-JOB -admin_version=2.3.1 +admin_version=2.4.0 admin_i18n=en ## system diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties index 69ef6e3d7..fc1d27644 100644 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_CN.properties @@ -1,6 +1,6 @@ admin_name=任务调度中心 admin_name_full=分布式任务调度平台XXL-JOB -admin_version=2.3.1 +admin_version=2.4.0 admin_i18n= ## system diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties index 35916c0d4..49d39fd2a 100755 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/i18n/message_zh_TC.properties @@ -1,6 +1,6 @@ admin_name=任務調度中心 admin_name_full=分布式任務調度平臺XXL-JOB -admin_version=2.3.1 +admin_version=2.4.0 admin_i18n= ## system diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js b/pig-visual/pig-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js old mode 100755 new mode 100644 index ddefd4663..0638eee27 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js @@ -25,8 +25,6 @@ $(function() { async: false, // sync, make log ordered url : base_url + '/joblog/logDetailCat', data : { - "executorAddress":executorAddress, - "triggerTime":triggerTime, "logId":logId, "fromLineNum":fromLineNum }, diff --git a/pig-visual/pig-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl b/pig-visual/pig-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl old mode 100755 new mode 100644 index 3881cfa6a..bb8072f97 --- a/pig-visual/pig-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl +++ b/pig-visual/pig-xxl-job-admin/src/main/resources/templates/joblog/joblog.detail.ftl @@ -62,8 +62,6 @@ // 参数 var triggerCode = '${triggerCode}'; var handleCode = '${handleCode}'; - var executorAddress = '${executorAddress!}'; - var triggerTime = '${triggerTime?c}'; var logId = '${logId}'; diff --git a/pom.xml b/pom.xml index 9b572a459..82657ebe4 100755 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ 3.0.5 3.0.0 3.0.3 - 2.3.1 + 2.4.0 0.32.0 http://192.168.0.100:2375 192.168.0.100 -- Gitee From 73ee2777e8d2591da90c5acc5f7e55e1f799a465 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 3 Apr 2023 15:45:29 +0800 Subject: [PATCH 061/105] =?UTF-8?q?:art:=20=E7=AE=80=E5=8C=96=20OAuth=202.?= =?UTF-8?q?1=20=E9=85=8D=E7=BD=AE=201.=20=E4=BD=BF=E7=94=A8=E9=9D=99?= =?UTF-8?q?=E6=80=81=E6=96=B9=E6=B3=95=20OAuth2AuthorizationServerConfigur?= =?UTF-8?q?ation.applyDefaultSecurity(http)=EF=BC=8C=E7=BC=BA=E7=9C=81=20a?= =?UTF-8?q?uthorizeRequests.anyRequest().authenticated()=E3=80=81csrf.igno?= =?UTF-8?q?ringRequestMatchers(endpointsMatcher)=20=E7=AD=89=E7=AD=89=202.?= =?UTF-8?q?=20=E4=BD=BF=E7=94=A8=20HttpSecurity=20=E8=8E=B7=E5=8F=96=20OAu?= =?UTF-8?q?th=202.1=20=E9=85=8D=E7=BD=AE=E4=B8=AD=E7=9A=84=20OAuth2Authori?= =?UTF-8?q?zationServerConfigurer=20=E5=AF=B9=E8=B1=A1=203.=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=83=A8=E5=88=86=20HttpSecurity.apply?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizationServerConfiguration.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java index f90d4dce7..8f1d0b8c2 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java @@ -35,6 +35,7 @@ import org.springframework.core.annotation.Order; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService; +import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration; import org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OAuth2AuthorizationServerConfigurer; import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings; import org.springframework.security.oauth2.server.authorization.token.DelegatingOAuth2TokenGenerator; @@ -44,7 +45,6 @@ import org.springframework.security.oauth2.server.authorization.web.authenticati import org.springframework.security.web.DefaultSecurityFilterChain; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.AuthenticationConverter; -import org.springframework.security.web.util.matcher.RequestMatcher; import java.util.Arrays; @@ -63,23 +63,29 @@ public class AuthorizationServerConfiguration { @Bean @Order(Ordered.HIGHEST_PRECEDENCE) public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception { - OAuth2AuthorizationServerConfigurer authorizationServerConfigurer = new OAuth2AuthorizationServerConfigurer(); - http.apply(authorizationServerConfigurer.tokenEndpoint((tokenEndpoint) -> {// 个性化认证授权端点 + // OAuth 2.1 默认配置 + // 缺省配置:authorizeRequests.anyRequest().authenticated()、 + // csrf.ignoringRequestMatchers(endpointsMatcher) 等等 + OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); + + // 使用 HttpSecurity 获取 OAuth 2.1 配置中的 OAuth2AuthorizationServerConfigurer 对象 + OAuth2AuthorizationServerConfigurer authorizationServerConfigurer = http + .getConfigurer(OAuth2AuthorizationServerConfigurer.class); + + authorizationServerConfigurer.tokenEndpoint((tokenEndpoint) -> {// 个性化认证授权端点 tokenEndpoint.accessTokenRequestConverter(accessTokenRequestConverter()) // 注入自定义的授权认证Converter .accessTokenResponseHandler(new PigAuthenticationSuccessEventHandler()) // 登录成功处理器 .errorResponseHandler(new PigAuthenticationFailureEventHandler());// 登录失败处理器 }).clientAuthentication(oAuth2ClientAuthenticationConfigurer -> // 个性化客户端认证 oAuth2ClientAuthenticationConfigurer.errorResponseHandler(new PigAuthenticationFailureEventHandler()))// 处理客户端认证异常 .authorizationEndpoint(authorizationEndpoint -> authorizationEndpoint// 授权码端点个性化confirm页面 - .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI))); - - RequestMatcher endpointsMatcher = authorizationServerConfigurer.getEndpointsMatcher(); - DefaultSecurityFilterChain securityFilterChain = http.requestMatcher(endpointsMatcher) - .authorizeRequests(authorizeRequests -> authorizeRequests.anyRequest().authenticated()) - .apply(authorizationServerConfigurer.authorizationService(authorizationService)// redis存储token的实现 - .authorizationServerSettings( - AuthorizationServerSettings.builder().issuer(SecurityConstants.PROJECT_LICENSE).build())) + .consentPage(SecurityConstants.CUSTOM_CONSENT_PAGE_URI)); + + DefaultSecurityFilterChain securityFilterChain = authorizationServerConfigurer + .authorizationService(authorizationService)// redis存储token的实现 + .authorizationServerSettings( + AuthorizationServerSettings.builder().issuer(SecurityConstants.PROJECT_LICENSE).build()) // 授权码登录的登录页个性化 .and() .apply(new FormIdentityLoginConfigurer()) -- Gitee From c59e23a2c115fbf9fe0e9116b09ddc1282d18768 Mon Sep 17 00:00:00 2001 From: fxw Date: Tue, 4 Apr 2023 10:25:16 +0800 Subject: [PATCH 062/105] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E5=A4=84?= =?UTF-8?q?=E7=90=86sql=E5=AD=97=E7=AC=A6=E9=9B=86=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig.sql | 210 ++++++++++++++++++++++----------------------- db/pig_codegen.sql | 28 +++--- db/pig_config.sql | 164 +++++++++++++++++------------------ db/pig_job.sql | 20 ++--- 4 files changed, 211 insertions(+), 211 deletions(-) diff --git a/db/pig.sql b/db/pig.sql index 7d162a28b..afa97a070 100644 --- a/db/pig.sql +++ b/db/pig.sql @@ -1,6 +1,6 @@ DROP DATABASE IF EXISTS `pig`; -CREATE DATABASE `pig` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE DATABASE `pig` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; @@ -11,16 +11,16 @@ DROP TABLE IF EXISTS `sys_dept` ; -- 创建表 `sys_dept` CREATE TABLE `sys_dept` ( `dept_id` bigint NOT NULL COMMENT '部门ID', - `name` varchar(50) COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门名称', + `name` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '部门名称', `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序值', - `del_flag` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记 -1:已删除 0:正常', + `del_flag` char(1) COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记 -1:已删除 0:正常', `parent_id` bigint DEFAULT NULL COMMENT '父部门ID', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `create_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `update_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`dept_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门管理'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='部门管理'; -- ---------------------------- -- Records of sys_dept @@ -43,7 +43,7 @@ CREATE TABLE `sys_dept_relation` ( PRIMARY KEY (`ancestor`,`descendant`), KEY `idx1` (`ancestor`), KEY `idx2` (`descendant`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='部门关系表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='部门关系表'; -- ---------------------------- -- Records of sys_dept_relation @@ -73,18 +73,18 @@ COMMIT; DROP TABLE IF EXISTS `sys_dict`; CREATE TABLE `sys_dict` ( `id` bigint NOT NULL, - `dict_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标识', - `description` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `system_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '是否是系统内置', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + `dict_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标识', + `description` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '描述', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '备注', + `system_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '是否是系统内置', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '更新人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `sys_dict_del_flag` (`del_flag`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='字典表'; -- ---------------------------- -- Records of sys_dict @@ -108,23 +108,23 @@ DROP TABLE IF EXISTS `sys_dict_item`; CREATE TABLE `sys_dict_item` ( `id` bigint NOT NULL, `dict_id` bigint NOT NULL COMMENT '字典ID', - `dict_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '字典标识', - `value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '值', - `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标签', - `type` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '字典类型', - `description` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述', + `dict_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '字典标识', + `value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '值', + `label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '标签', + `type` varchar(100) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '字典类型', + `description` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '描述', `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序(升序)', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT ' ' COMMENT '备注', - `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT ' ' COMMENT '备注', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `sys_dict_value` (`value`) USING BTREE, KEY `sys_dict_label` (`label`) USING BTREE, KEY `sys_dict_del_flag` (`del_flag`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典项'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='字典项'; -- ---------------------------- -- Records of sys_dict_item @@ -172,19 +172,19 @@ DROP TABLE IF EXISTS `sys_public_param`; -- 创建表 `sys_public_param` CREATE TABLE `sys_public_param` ( `public_id` bigint(0) NOT NULL COMMENT '编号', - `public_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数名称', - `public_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数键名', - `public_value` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数键值', - `status` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '状态,1-启用,0-禁用', - `validate_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '校验码', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', + `public_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数名称', + `public_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数键名', + `public_value` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '参数键值', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '状态,1-启用,0-禁用', + `validate_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '校验码', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ' ' COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '修改时间', - `public_type` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '参数类型,1-系统参数,2-业务参数', - `system_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '是否为系统内置参数,1-是,0-否', + `public_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '参数类型,1-系统参数,2-业务参数', + `system_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '0' COMMENT '是否为系统内置参数,1-是,0-否', PRIMARY KEY (`public_id`) USING BTREE -) ENGINE = InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci COMMENT = '公共参数配置表'; +) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_bin COMMENT = '公共参数配置表'; -- ---------------------------- -- Records of sys_public_param @@ -201,18 +201,18 @@ COMMIT; DROP TABLE IF EXISTS `sys_file`; CREATE TABLE `sys_file` ( `id` bigint NOT NULL COMMENT '文件ID', - `file_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件名称', - `bucket_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件存储桶名称', - `original` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '原始文件名', - `type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '文件类型', + `file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文件名称', + `bucket_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文件存储桶名称', + `original` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '原始文件名', + `type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文件类型', `file_size` bigint DEFAULT NULL COMMENT '文件大小', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标志:0-正常,1-删除', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标志:0-正常,1-删除', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建者', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='文件管理表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='文件管理表'; -- ---------------------------- -- Records of sys_file @@ -226,27 +226,27 @@ COMMIT; DROP TABLE IF EXISTS `sys_log`; CREATE TABLE `sys_log` ( `id` bigint NOT NULL, - `type` char(1) COLLATE utf8_general_ci DEFAULT '1' COMMENT '日志类型', - `title` varchar(255) COLLATE utf8_general_ci DEFAULT '' COMMENT '日志标题', - `service_id` varchar(32) COLLATE utf8_general_ci DEFAULT NULL COMMENT '服务ID', - `remote_addr` varchar(255) COLLATE utf8_general_ci DEFAULT NULL COMMENT '操作IP地址', - `user_agent` varchar(1000) COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户代理', - `request_uri` varchar(255) COLLATE utf8_general_ci DEFAULT NULL COMMENT '请求URI', - `method` varchar(10) COLLATE utf8_general_ci DEFAULT NULL COMMENT '操作方式', - `params` text COLLATE utf8_general_ci COMMENT '操作提交的数据', + `type` char(1) COLLATE utf8mb4_bin DEFAULT '1' COMMENT '日志类型', + `title` varchar(255) COLLATE utf8mb4_bin DEFAULT '' COMMENT '日志标题', + `service_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '服务ID', + `remote_addr` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '操作IP地址', + `user_agent` varchar(1000) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户代理', + `request_uri` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '请求URI', + `method` varchar(10) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '操作方式', + `params` text COLLATE utf8mb4_bin COMMENT '操作提交的数据', `time` bigint DEFAULT NULL COMMENT '执行时间', - `del_flag` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', - `exception` text COLLATE utf8_general_ci COMMENT '异常信息', + `del_flag` char(1) COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记', + `exception` text COLLATE utf8mb4_bin COMMENT '异常信息', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `create_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`id`), KEY `sys_log_create_by` (`create_by`), KEY `sys_log_request_uri` (`request_uri`), KEY `sys_log_type` (`type`), KEY `sys_log_create_date` (`create_time`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='日志表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='日志表'; -- ---------------------------- -- Records of sys_log @@ -260,21 +260,21 @@ COMMIT; DROP TABLE IF EXISTS `sys_menu`; CREATE TABLE `sys_menu` ( `menu_id` bigint NOT NULL, - `name` varchar(32) COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称', - `permission` varchar(32) COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单权限标识', - `path` varchar(128) COLLATE utf8_general_ci DEFAULT NULL COMMENT '前端URL', + `name` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '菜单名称', + `permission` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '菜单权限标识', + `path` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '前端URL', `parent_id` bigint DEFAULT NULL COMMENT '父菜单ID', - `icon` varchar(32) COLLATE utf8_general_ci DEFAULT NULL COMMENT '图标', + `icon` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '图标', `sort_order` int NOT NULL DEFAULT '0' COMMENT '排序值', - `keep_alive` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '0-开启,1- 关闭', - `type` char(1) COLLATE utf8_general_ci DEFAULT NULL COMMENT '菜单类型 (0菜单 1按钮)', - `del_flag` char(1) COLLATE utf8_general_ci DEFAULT '0' COMMENT '逻辑删除标记(0--正常 1--删除)', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `keep_alive` char(1) COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-开启,1- 关闭', + `type` char(1) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '菜单类型 (0菜单 1按钮)', + `del_flag` char(1) COLLATE utf8mb4_bin DEFAULT '0' COMMENT '逻辑删除标记(0--正常 1--删除)', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '修改人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '修改人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`menu_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='菜单权限表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='菜单权限表'; -- ---------------------------- -- Records of sys_menu @@ -345,23 +345,23 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `sys_oauth_client_details`; CREATE TABLE `sys_oauth_client_details` ( - `client_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '客户端ID', - `resource_ids` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '资源列表', - `client_secret` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '客户端密钥', - `scope` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '域', - `authorized_grant_types` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '认证类型', - `web_server_redirect_uri` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '重定向地址', - `authorities` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色列表', + `client_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '客户端ID', + `resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '资源列表', + `client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '客户端密钥', + `scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '域', + `authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '认证类型', + `web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '重定向地址', + `authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '角色列表', `access_token_validity` int DEFAULT NULL COMMENT 'token 有效期', `refresh_token_validity` int DEFAULT NULL COMMENT '刷新令牌有效期', - `additional_information` varchar(4096) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '令牌扩展字段JSON', - `autoapprove` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '是否自动放行', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '令牌扩展字段JSON', + `autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '是否自动放行', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '更新时间', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`client_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='终端信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='终端信息表'; -- ---------------------------- -- Records of sys_oauth_client_details @@ -381,17 +381,17 @@ COMMIT; DROP TABLE IF EXISTS `sys_post`; CREATE TABLE `sys_post` ( `post_id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '岗位ID', - `post_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位编码', - `post_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '岗位名称', + `post_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '岗位编码', + `post_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '岗位名称', `post_sort` int(0) NOT NULL COMMENT '岗位排序', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' COMMENT '是否删除 -1:已删除 0:正常', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '0' COMMENT '是否删除 -1:已删除 0:正常', `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '创建人', `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '更新人', - `remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '' COMMENT '更新人', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注信息', PRIMARY KEY (`post_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT = '岗位信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT = '岗位信息表'; -- ---------------------------- -- Records of sys_post @@ -410,7 +410,7 @@ CREATE TABLE `sys_user_post` ( `user_id` bigint(0) NOT NULL COMMENT '用户ID', `post_id` bigint(0) NOT NULL COMMENT '岗位ID', PRIMARY KEY (`user_id`, `post_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT = '用户与岗位关联表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT = '用户与岗位关联表'; -- ---------------------------- -- Records of sys_user_post @@ -425,17 +425,17 @@ COMMIT; DROP TABLE IF EXISTS `sys_role`; CREATE TABLE `sys_role` ( `role_id` bigint NOT NULL COMMENT '角色ID', - `role_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', - `role_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色代码', - `role_desc` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色描述', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标识:0-正常,1-删除', + `role_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色名称', + `role_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '角色代码', + `role_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '角色描述', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标识:0-正常,1-删除', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '修改人', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '修改人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`role_id`), UNIQUE KEY `role_idx1_role_code` (`role_code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统角色表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='系统角色表'; -- ---------------------------- -- Records of sys_role @@ -453,7 +453,7 @@ CREATE TABLE `sys_role_menu` ( `role_id` bigint NOT NULL COMMENT '角色ID', `menu_id` bigint NOT NULL COMMENT '菜单ID', PRIMARY KEY (`role_id`,`menu_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='角色菜单表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='角色菜单表'; -- ---------------------------- -- Records of sys_role_menu @@ -527,21 +527,21 @@ COMMIT; DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_user` ( `user_id` bigint NOT NULL, - `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', - `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码', - `salt` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '随机盐', - `phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '简介', - `avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '头像', + `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '密码', + `salt` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '随机盐', + `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '简介', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '头像', `dept_id` bigint DEFAULT NULL COMMENT '部门ID', - `lock_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '0-正常,9-锁定', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '0-正常,1-删除', + `lock_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-正常,9-锁定', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '0-正常,1-删除', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者', - `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建者', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`user_id`), KEY `user_idx1_username` (`username`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='用户表'; -- ---------------------------- -- Records of sys_user @@ -558,7 +558,7 @@ CREATE TABLE `sys_user_role` ( `user_id` bigint NOT NULL COMMENT '用户ID', `role_id` bigint NOT NULL COMMENT '角色ID', PRIMARY KEY (`user_id`,`role_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='用户角色表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC COMMENT='用户角色表'; -- ---------------------------- -- Records of sys_user_role diff --git a/db/pig_codegen.sql b/db/pig_codegen.sql index e78920aec..bf6d22e0c 100644 --- a/db/pig_codegen.sql +++ b/db/pig_codegen.sql @@ -1,6 +1,6 @@ DROP DATABASE IF EXISTS `pig_codegen`; -CREATE DATABASE `pig_codegen` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; +CREATE DATABASE `pig_codegen` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_bin; SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; @@ -13,17 +13,17 @@ USE `pig_codegen`; DROP TABLE IF EXISTS `gen_datasource_conf`; CREATE TABLE `gen_datasource_conf` ( `id` bigint NOT NULL COMMENT '数据源ID', - `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '数据源名称', - `url` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'jdbc-url', - `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名', - `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', + `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数据源名称', + `url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'jdbc-url', + `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户名', + `password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `create_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `update_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='数据源表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='数据源表'; -- ---------------------------- -- Records of gen_datasource_conf @@ -37,16 +37,16 @@ COMMIT; DROP TABLE IF EXISTS `gen_form_conf`; CREATE TABLE `gen_form_conf` ( `id` bigint NOT NULL COMMENT '表单配置ID', - `table_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '表名', + `table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '表名', `form_info` json NOT NULL COMMENT '表单信息', - `del_flag` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记', + `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '0' COMMENT '删除标记', `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人', + `create_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', `update_time` datetime DEFAULT NULL COMMENT '修改时间', - `update_by` varchar(64) COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人', + `update_by` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`id`) USING BTREE, KEY `table_name` (`table_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='表单配置'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='表单配置'; -- ---------------------------- -- Records of gen_form_conf diff --git a/db/pig_config.sql b/db/pig_config.sql index 3a404bb03..6aedbcbf4 100644 --- a/db/pig_config.sql +++ b/db/pig_config.sql @@ -1,10 +1,10 @@ DROP DATABASE IF EXISTS `pig_config`; -CREATE DATABASE `pig_config` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE DATABASE `pig_config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE pig_config; -SET NAMES utf8; +SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- @@ -13,25 +13,25 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `config_info`; CREATE TABLE `config_info` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', - `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', + `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', - `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', - `c_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `c_use` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `effect` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `c_schema` text CHARACTER SET utf8 COLLATE utf8_bin, - `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `c_use` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `effect` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `c_schema` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin, + `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info'; -- ---------------------------- -- Records of config_info @@ -52,16 +52,16 @@ COMMIT; DROP TABLE IF EXISTS `config_info_aggr`; CREATE TABLE `config_info_aggr` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', - `datum_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'datum_id', - `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '内容', + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'datum_id', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '内容', `gmt_modified` datetime NOT NULL COMMENT '修改时间', - `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='增加租户字段'; -- ---------------------------- -- Records of config_info_aggr @@ -75,21 +75,21 @@ COMMIT; DROP TABLE IF EXISTS `config_info_beta`; CREATE TABLE `config_info_beta` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', - `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', - `beta_ips` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'betaIps', - `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', + `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info_beta'; -- ---------------------------- -- Records of config_info_beta @@ -103,20 +103,20 @@ COMMIT; DROP TABLE IF EXISTS `config_info_tag`; CREATE TABLE `config_info_tag` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', - `tag_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_id', - `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', - `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', + `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info_tag'; -- ---------------------------- -- Records of config_info_tag @@ -130,16 +130,16 @@ COMMIT; DROP TABLE IF EXISTS `config_tags_relation`; CREATE TABLE `config_tags_relation` ( `id` bigint NOT NULL COMMENT 'id', - `tag_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_name', - `tag_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'tag_type', - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `tag_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', `nid` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`nid`), UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_tag_relation'; -- ---------------------------- -- Records of config_tags_relation @@ -153,7 +153,7 @@ COMMIT; DROP TABLE IF EXISTS `group_capacity`; CREATE TABLE `group_capacity` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', @@ -164,7 +164,7 @@ CREATE TABLE `group_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_group_id` (`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='集群、各Group容量信息表'; -- ---------------------------- -- Records of group_capacity @@ -179,23 +179,23 @@ DROP TABLE IF EXISTS `his_config_info`; CREATE TABLE `his_config_info` ( `id` bigint unsigned NOT NULL, `nid` bigint unsigned NOT NULL AUTO_INCREMENT, - `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, - `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, + `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `src_user` text CHARACTER SET utf8 COLLATE utf8_bin, - `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `op_type` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin, + `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `op_type` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`nid`), KEY `idx_gmt_create` (`gmt_create`), KEY `idx_gmt_modified` (`gmt_modified`), KEY `idx_did` (`data_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='多租户改造'; -- ---------------------------- -- Records of his_config_info @@ -208,11 +208,11 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `permissions`; CREATE TABLE `permissions` ( - `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `resource` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `action` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `resource` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `action` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of permissions @@ -225,10 +225,10 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `roles`; CREATE TABLE `roles` ( - `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, UNIQUE KEY `idx_user_role` (`username`,`role`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of roles @@ -243,7 +243,7 @@ COMMIT; DROP TABLE IF EXISTS `tenant_capacity`; CREATE TABLE `tenant_capacity` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID', `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', @@ -254,7 +254,7 @@ CREATE TABLE `tenant_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='租户容量信息表'; -- ---------------------------- -- Records of tenant_capacity @@ -268,17 +268,17 @@ COMMIT; DROP TABLE IF EXISTS `tenant_info`; CREATE TABLE `tenant_info` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `kp` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'kp', - `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', - `tenant_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_name', - `tenant_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'tenant_desc', - `create_source` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'create_source', + `kp` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', + `tenant_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'create_source', `gmt_create` bigint NOT NULL COMMENT '创建时间', `gmt_modified` bigint NOT NULL COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='tenant_info'; -- ---------------------------- -- Records of tenant_info @@ -291,11 +291,11 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( - `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `password` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, `enabled` tinyint(1) NOT NULL, PRIMARY KEY (`username`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of users diff --git a/db/pig_job.sql b/db/pig_job.sql index 585c6e8bf..766178296 100644 --- a/db/pig_job.sql +++ b/db/pig_job.sql @@ -1,10 +1,10 @@ DROP DATABASE IF EXISTS `pig_job`; -CREATE DATABASE `pig_job` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE DATABASE `pig_job` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; use `pig_job`; -SET NAMES utf8; +SET NAMES utf8mb4; CREATE TABLE `xxl_job_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -32,7 +32,7 @@ CREATE TABLE `xxl_job_info` ( `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间', `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -53,7 +53,7 @@ CREATE TABLE `xxl_job_log` ( PRIMARY KEY (`id`), KEY `I_trigger_time` (`trigger_time`), KEY `I_handle_code` (`handle_code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_log_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -64,7 +64,7 @@ CREATE TABLE `xxl_job_log_report` ( `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_logglue` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -75,7 +75,7 @@ CREATE TABLE `xxl_job_logglue` ( `add_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_registry` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -85,7 +85,7 @@ CREATE TABLE `xxl_job_registry` ( `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_group` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -95,7 +95,7 @@ CREATE TABLE `xxl_job_group` ( `address_list` text COMMENT '执行器地址列表,多地址逗号分隔', `update_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -105,12 +105,12 @@ CREATE TABLE `xxl_job_user` ( `permission` varchar(255) DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割', PRIMARY KEY (`id`), UNIQUE KEY `i_username` (`username`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `xxl_job_lock` ( `lock_name` varchar(50) NOT NULL COMMENT '锁名称', PRIMARY KEY (`lock_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (1, 'xxl-job-executor-sample', '示例执行器', 0, NULL, '2018-11-03 22:21:31' ); INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'CRON', '0 0 0 * * ? *', 'DO_NOTHING', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', ''); -- Gitee From a04b47f4a1e9df5d8e9cd37163ea32fc083c9884 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 4 Apr 2023 10:28:06 +0800 Subject: [PATCH 063/105] :arrow_up: Upgrading dependencies. seata 1.6.1 --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 4cbd5bbc9..ba87b8f47 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -27,7 +27,7 @@ 2.2.0 3.5.3.1 8.0.31 - 1.5.2 + 1.6.1 1.2.6 7.1 1.0.5 -- Gitee From 517e644e2c22665650535065c35f1c641725ab27 Mon Sep 17 00:00:00 2001 From: fxw Date: Tue, 4 Apr 2023 11:01:12 +0800 Subject: [PATCH 064/105] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E5=9B=A0pig=5Fco?= =?UTF-8?q?nfig=E4=B8=AD=E8=81=94=E5=90=88=E4=B8=BB=E9=94=AE=E8=BF=87?= =?UTF-8?q?=E9=95=BF=E4=B8=8D=E8=83=BD=E9=87=87=E7=94=A8utf8mb4,=E4=BF=9D?= =?UTF-8?q?=E7=95=99utf8;=E4=BF=AE=E5=A4=8Dpig=5Fcodegen=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=B8=BA=E4=BF=AE=E6=94=B9=E7=9A=84=E5=AD=97=E7=AC=A6=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig_codegen.sql | 4 +- db/pig_config.sql | 164 ++++++++++++++++++++++----------------------- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/db/pig_codegen.sql b/db/pig_codegen.sql index bf6d22e0c..791d13935 100644 --- a/db/pig_codegen.sql +++ b/db/pig_codegen.sql @@ -1,8 +1,8 @@ DROP DATABASE IF EXISTS `pig_codegen`; -CREATE DATABASE `pig_codegen` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_bin; +CREATE DATABASE `pig_codegen` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; -SET NAMES utf8; +SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; USE `pig_codegen`; diff --git a/db/pig_config.sql b/db/pig_config.sql index 6aedbcbf4..3a404bb03 100644 --- a/db/pig_config.sql +++ b/db/pig_config.sql @@ -1,10 +1,10 @@ DROP DATABASE IF EXISTS `pig_config`; -CREATE DATABASE `pig_config` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +CREATE DATABASE `pig_config` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE pig_config; -SET NAMES utf8mb4; +SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- @@ -13,25 +13,25 @@ SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `config_info`; CREATE TABLE `config_info` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', - `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', + `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', - `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', - `c_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `c_use` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `effect` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `c_schema` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin, - `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `c_use` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `effect` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `c_schema` text CHARACTER SET utf8 COLLATE utf8_bin, + `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info'; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; -- ---------------------------- -- Records of config_info @@ -52,16 +52,16 @@ COMMIT; DROP TABLE IF EXISTS `config_info_aggr`; CREATE TABLE `config_info_aggr` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', - `datum_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'datum_id', - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '内容', + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'datum_id', + `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '内容', `gmt_modified` datetime NOT NULL COMMENT '修改时间', - `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', + `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='增加租户字段'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; -- ---------------------------- -- Records of config_info_aggr @@ -75,21 +75,21 @@ COMMIT; DROP TABLE IF EXISTS `config_info_beta`; CREATE TABLE `config_info_beta` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', - `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', - `beta_ips` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'betaIps', - `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info_beta'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; -- ---------------------------- -- Records of config_info_beta @@ -103,20 +103,20 @@ COMMIT; DROP TABLE IF EXISTS `config_info_tag`; CREATE TABLE `config_info_tag` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', - `tag_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'tag_id', - `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'content', - `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'md5', + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'content', + `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', - `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT 'source user', - `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'source ip', + `src_user` text CHARACTER SET utf8 COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', PRIMARY KEY (`id`), UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_info_tag'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; -- ---------------------------- -- Records of config_info_tag @@ -130,16 +130,16 @@ COMMIT; DROP TABLE IF EXISTS `config_tags_relation`; CREATE TABLE `config_tags_relation` ( `id` bigint NOT NULL COMMENT 'id', - `tag_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'tag_name', - `tag_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'tag_type', - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'data_id', - `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'group_id', - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', + `tag_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', `nid` bigint NOT NULL AUTO_INCREMENT, PRIMARY KEY (`nid`), UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='config_tag_relation'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; -- ---------------------------- -- Records of config_tags_relation @@ -153,7 +153,7 @@ COMMIT; DROP TABLE IF EXISTS `group_capacity`; CREATE TABLE `group_capacity` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', @@ -164,7 +164,7 @@ CREATE TABLE `group_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_group_id` (`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='集群、各Group容量信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; -- ---------------------------- -- Records of group_capacity @@ -179,23 +179,23 @@ DROP TABLE IF EXISTS `his_config_info`; CREATE TABLE `his_config_info` ( `id` bigint unsigned NOT NULL, `nid` bigint unsigned NOT NULL AUTO_INCREMENT, - `data_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `group_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `app_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'app_name', - `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `md5` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `app_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, + `md5` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `src_user` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin, - `src_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `op_type` char(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT '租户字段', - `encrypted_data_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '秘钥', + `src_user` text CHARACTER SET utf8 COLLATE utf8_bin, + `src_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `op_type` char(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '秘钥', PRIMARY KEY (`nid`), KEY `idx_gmt_create` (`gmt_create`), KEY `idx_gmt_modified` (`gmt_modified`), KEY `idx_did` (`data_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='多租户改造'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; -- ---------------------------- -- Records of his_config_info @@ -208,11 +208,11 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `permissions`; CREATE TABLE `permissions` ( - `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, - `resource` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, - `action` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `resource` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `action` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of permissions @@ -225,10 +225,10 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `roles`; CREATE TABLE `roles` ( - `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, - `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `role` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, UNIQUE KEY `idx_user_role` (`username`,`role`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of roles @@ -243,7 +243,7 @@ COMMIT; DROP TABLE IF EXISTS `tenant_capacity`; CREATE TABLE `tenant_capacity` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID', `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', @@ -254,7 +254,7 @@ CREATE TABLE `tenant_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='租户容量信息表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; -- ---------------------------- -- Records of tenant_capacity @@ -268,17 +268,17 @@ COMMIT; DROP TABLE IF EXISTS `tenant_info`; CREATE TABLE `tenant_info` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', - `kp` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'kp', - `tenant_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_id', - `tenant_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT '' COMMENT 'tenant_name', - `tenant_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'tenant_desc', - `create_source` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'create_source', + `kp` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `tenant_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT 'create_source', `gmt_create` bigint NOT NULL COMMENT '创建时间', `gmt_modified` bigint NOT NULL COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), KEY `idx_tenant_id` (`tenant_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='tenant_info'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; -- ---------------------------- -- Records of tenant_info @@ -291,11 +291,11 @@ COMMIT; -- ---------------------------- DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( - `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, - `password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8_general_ci NOT NULL, + `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `password` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `enabled` tinyint(1) NOT NULL, PRIMARY KEY (`username`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8_general_ci; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- ---------------------------- -- Records of users -- Gitee From 6f2948b793866a0cfc76fff925ef842b0927b729 Mon Sep 17 00:00:00 2001 From: fxw Date: Tue, 4 Apr 2023 14:04:09 +0800 Subject: [PATCH 065/105] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E7=BB=8F?= =?UTF-8?q?=E8=BF=87=E4=BB=A3=E7=A0=81=E6=A3=80=E6=9F=A5=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E4=BD=BF=E7=94=A8hutool=E7=9A=84StrUtil=20fi?= =?UTF-8?q?x:=20=F0=9F=90=9B=20=E5=8E=BB=E6=8E=89=E4=B8=80=E6=AE=B5?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81=EF=BC=9B=20fix:=20?= =?UTF-8?q?=F0=9F=90=9B=20=E5=88=9B=E5=BB=BA=E7=A7=81=E6=9C=89=E6=9E=84?= =?UTF-8?q?=E9=80=A0=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/PigOAuthRequestInterceptor.java | 4 ++-- .../security/component/PigSecurityInnerAspect.java | 11 ++++++----- .../pig/common/security/util/SecurityUtils.java | 5 +++-- .../com/pig4cloud/pig/common/xss/core/XssHolder.java | 2 ++ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java index bc0aece47..edb5812f9 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigOAuthRequestInterceptor.java @@ -1,7 +1,7 @@ package com.pig4cloud.pig.common.security.component; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.pig4cloud.pig.common.core.constant.SecurityConstants; import com.pig4cloud.pig.common.core.util.WebUtils; import feign.RequestInterceptor; @@ -52,7 +52,7 @@ public class PigOAuthRequestInterceptor implements RequestInterceptor { HttpServletRequest request = WebUtils.getRequest().get(); // 避免请求参数的 query token 无法传递 String token = tokenResolver.resolve(request); - if (StrUtil.isBlank(token)) { + if (StringUtils.isBlank(token)) { return; } template.header(HttpHeaders.AUTHORIZATION, diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java index ddae78468..5d812e5fc 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java @@ -48,12 +48,13 @@ public class PigSecurityInnerAspect implements Ordered { @Around("@within(inner) || @annotation(inner)") public Object around(ProceedingJoinPoint point, Inner inner) { // 实际注入的inner实体由表达式后一个注解决定,即是方法上的@Inner注解实体,若方法上无@Inner注解,则获取类上的 - if (inner == null) { - Class clazz = point.getTarget().getClass(); - inner = AnnotationUtils.findAnnotation(clazz, Inner.class); - } + // 这段代码没有意义,拦截的就是@Inner注解,怎么会为null呢 +// if (inner == null) { +// Class clazz = point.getTarget().getClass(); +// inner = AnnotationUtils.findAnnotation(clazz, Inner.class); +// } String header = request.getHeader(SecurityConstants.FROM); - if (inner.value() && !StrUtil.equals(SecurityConstants.FROM_IN, header)) { + if (inner.value() && !SecurityConstants.FROM_IN.equals(header)) { log.warn("访问接口 {} 没有权限", point.getSignature().getName()); throw new AccessDeniedException("Access is denied"); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java index a26c9e6ae..de5368e00 100755 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/util/SecurityUtils.java @@ -16,6 +16,7 @@ package com.pig4cloud.pig.common.security.util; +import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.StrUtil; import com.pig4cloud.pig.common.core.constant.SecurityConstants; import com.pig4cloud.pig.common.security.service.PigUser; @@ -75,9 +76,9 @@ public class SecurityUtils { List roleIds = new ArrayList<>(); authorities.stream() - .filter(granted -> StrUtil.startWith(granted.getAuthority(), SecurityConstants.ROLE)) + .filter(granted -> CharSequenceUtil.startWith(granted.getAuthority(), SecurityConstants.ROLE)) .forEach(granted -> { - String id = StrUtil.removePrefix(granted.getAuthority(), SecurityConstants.ROLE); + String id = CharSequenceUtil.removePrefix(granted.getAuthority(), SecurityConstants.ROLE); roleIds.add(Long.parseLong(id)); }); return roleIds; diff --git a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java index 017b67494..c3a539523 100644 --- a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java +++ b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java @@ -23,6 +23,8 @@ package com.pig4cloud.pig.common.xss.core; */ public class XssHolder { + private XssHolder() {} + private static final ThreadLocal TL = new ThreadLocal<>(); private static final ThreadLocal TL_IGNORE = new ThreadLocal<>(); -- Gitee From ac8e2d7b345bf094f35861b4c1eedbf4dcda62a1 Mon Sep 17 00:00:00 2001 From: fxw Date: Tue, 4 Apr 2023 14:32:52 +0800 Subject: [PATCH 066/105] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E8=8E=B7=E5=8F=96HttpServletRequest=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/common/core/util/ClassUtils.java | 1 - .../pig/common/core/util/WebUtils.java | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/ClassUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/ClassUtils.java index 6668c673e..bf689fcd1 100755 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/ClassUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/ClassUtils.java @@ -81,7 +81,6 @@ public class ClassUtils extends org.springframework.util.ClassUtils { specificMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); // 先找方法,再找方法上的类 A annotation = AnnotatedElementUtils.findMergedAnnotation(specificMethod, annotationType); - ; if (null != annotation) { return annotation; } diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java index d407e81d1..47ac39db3 100755 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java @@ -105,13 +105,20 @@ public class WebUtils extends org.springframework.web.util.WebUtils { response.addCookie(cookie); } + public ServletRequestAttributes getServletRequestAttributes(){ + return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + } + /** * 获取 HttpServletRequest * @return {HttpServletRequest} */ public Optional getRequest() { - return Optional - .ofNullable(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); + ServletRequestAttributes servletRequestAttributes = getServletRequestAttributes(); + if (servletRequestAttributes == null) { + return Optional.empty(); + } + return Optional.of(servletRequestAttributes.getRequest()); } /** @@ -119,7 +126,11 @@ public class WebUtils extends org.springframework.web.util.WebUtils { * @return {HttpServletResponse} */ public HttpServletResponse getResponse() { - return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); + ServletRequestAttributes servletRequestAttributes = getServletRequestAttributes(); + if (servletRequestAttributes == null) { + throw new CheckedException("无法获取HttpServletRequest"); + } + return servletRequestAttributes.getResponse(); } /** -- Gitee From 5caae30c86e6c1179b6ffa225d32f3b5d9af967c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B8=B8=E5=9D=A4?= Date: Thu, 13 Apr 2023 17:00:24 +0800 Subject: [PATCH 067/105] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=90=8D=E4=B8=BA=E9=A9=BC=E5=B3=B0=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/admin/controller/SysDeptController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java index 3e7df3a08..c0e4a2bd2 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDeptController.java @@ -115,13 +115,13 @@ public class SysDeptController { /** * 根据部门名查询部门信息 - * @param deptname 部门名 - * @return + * @param deptName 部门名 + * @return SysDept */ - @GetMapping("/details/{deptname}") - public R user(@PathVariable String deptname) { + @GetMapping("/details/{deptName}") + public R user(@PathVariable String deptName) { SysDept condition = new SysDept(); - condition.setName(deptname); + condition.setName(deptName); return R.ok(sysDeptService.getOne(new QueryWrapper<>(condition))); } -- Gitee From 9db49bda5efc0f8e1baad411234bf3b39f836c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B8=B8=E5=9D=A4?= Date: Thu, 13 Apr 2023 17:01:46 +0800 Subject: [PATCH 068/105] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pig4cloud/pig/admin/api/feign/RemoteUserService.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteUserService.java b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteUserService.java index 3dfc3f084..0af6d9ba5 100755 --- a/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteUserService.java +++ b/pig-upms/pig-upms-api/src/main/java/com/pig4cloud/pig/admin/api/feign/RemoteUserService.java @@ -46,7 +46,6 @@ public interface RemoteUserService { /** * 通过手机号码查询用户、角色信息 * @param phone 手机号码 - * @param from 调用标志 * @return R */ @GetMapping(value = "/app/info/{phone}", headers = SecurityConstants.HEADER_FROM_IN) @@ -55,7 +54,6 @@ public interface RemoteUserService { /** * 根据部门id,查询对应的用户 id 集合 * @param deptIds 部门id 集合 - * @param from 调用标志 * @return 用户 id 集合 */ @GetMapping(value = "/user/ids", headers = SecurityConstants.HEADER_FROM_IN) -- Gitee From 4f1d71161bc57370e0b9a837b2e2589d1171d33b Mon Sep 17 00:00:00 2001 From: Lht Date: Thu, 13 Apr 2023 18:32:29 +0800 Subject: [PATCH 069/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.17 --- README.md | 2 +- pig-common/pig-common-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7b7b13b4b..8f494cf91 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ | Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.1 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.16 | +| hutool | 5.8.17 | ### 模块说明 diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index ba87b8f47..ef5e0fac5 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.16 + 5.8.17 2.7.4 1.8.4 -- Gitee From a13d5f286463284a8cafdc944a8961aaa9856386 Mon Sep 17 00:00:00 2001 From: Lht Date: Thu, 13 Apr 2023 18:35:14 +0800 Subject: [PATCH 070/105] :art: Improving structure / format of the code. spring-format --- .../java/com/pig4cloud/pig/common/core/util/WebUtils.java | 2 +- .../common/security/component/PigSecurityInnerAspect.java | 8 ++++---- .../java/com/pig4cloud/pig/common/xss/core/XssHolder.java | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java index 47ac39db3..11a842bde 100755 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/WebUtils.java @@ -105,7 +105,7 @@ public class WebUtils extends org.springframework.web.util.WebUtils { response.addCookie(cookie); } - public ServletRequestAttributes getServletRequestAttributes(){ + public ServletRequestAttributes getServletRequestAttributes() { return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); } diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java index 5d812e5fc..6d55f61eb 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java @@ -49,10 +49,10 @@ public class PigSecurityInnerAspect implements Ordered { public Object around(ProceedingJoinPoint point, Inner inner) { // 实际注入的inner实体由表达式后一个注解决定,即是方法上的@Inner注解实体,若方法上无@Inner注解,则获取类上的 // 这段代码没有意义,拦截的就是@Inner注解,怎么会为null呢 -// if (inner == null) { -// Class clazz = point.getTarget().getClass(); -// inner = AnnotationUtils.findAnnotation(clazz, Inner.class); -// } + // if (inner == null) { + // Class clazz = point.getTarget().getClass(); + // inner = AnnotationUtils.findAnnotation(clazz, Inner.class); + // } String header = request.getHeader(SecurityConstants.FROM); if (inner.value() && !SecurityConstants.FROM_IN.equals(header)) { log.warn("访问接口 {} 没有权限", point.getSignature().getName()); diff --git a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java index c3a539523..128044e36 100644 --- a/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java +++ b/pig-common/pig-common-xss/src/main/java/com/pig4cloud/pig/common/xss/core/XssHolder.java @@ -23,7 +23,8 @@ package com.pig4cloud.pig.common.xss.core; */ public class XssHolder { - private XssHolder() {} + private XssHolder() { + } private static final ThreadLocal TL = new ThreadLocal<>(); -- Gitee From 1797535f0bff5d1583213749912f466d2715a52f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Wed, 19 Apr 2023 14:13:17 +0800 Subject: [PATCH 071/105] =?UTF-8?q?:arrow=5Fup:=20=E5=8D=87=E7=BA=A7=20spr?= =?UTF-8?q?ing-authorization-server=200.4.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f494cf91..e63bf8498 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ | Spring Boot | 2.7.10 | | Spring Cloud | 2021.0.6 | | Spring Cloud Alibaba | 2021.0.5.0 | -| Spring Authorization Server | 0.4.1 | +| Spring Authorization Server | 0.4.2 | | Mybatis Plus | 3.5.3.1 | | hutool | 5.8.17 | diff --git a/pom.xml b/pom.xml index 82657ebe4..74080b83c 100755 --- a/pom.xml +++ b/pom.xml @@ -34,7 +34,7 @@ 1.8 1.8 2.7.10 - 0.4.1 + 0.4.2 3.6.0 2.2.2 2.3 -- Gitee From b794b86c5ae583fda0bd3e1b9f1b001adb62f30f Mon Sep 17 00:00:00 2001 From: twelvet <2471835953@qq.com> Date: Fri, 21 Apr 2023 02:27:13 +0000 Subject: [PATCH 072/105] springboot 2.7.11 Signed-off-by: twelvet <2471835953@qq.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 74080b83c..86273b21c 100755 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.10 + 2.7.11 2021.0.6 2021.0.5.0 UTF-8 -- Gitee From 8ef8d414e29f2b490c75532c7e2ec28422def452 Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 21 Apr 2023 13:18:14 +0800 Subject: [PATCH 073/105] :arrow_up: Upgrading dependencies. springboot 2.7.11 --- README.md | 2 +- pom.xml | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e63bf8498..8f4cc7af1 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ | 依赖 | 版本 | | ---------------------- |------------| -| Spring Boot | 2.7.10 | +| Spring Boot | 2.7.11 | | Spring Cloud | 2021.0.6 | | Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.2 | diff --git a/pom.xml b/pom.xml index 86273b21c..b716876a8 100755 --- a/pom.xml +++ b/pom.xml @@ -159,6 +159,13 @@ true + + + + repackage + + + io.fabric8 -- Gitee From 5b963bae19340ddbb865ec5225f9686d96b246d2 Mon Sep 17 00:00:00 2001 From: jiakang Date: Thu, 27 Apr 2023 11:44:56 +0800 Subject: [PATCH 074/105] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E9=A1=B9=E6=8E=92=E5=BA=8F=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AD=97=E5=85=B8=E9=A1=B9=E6=9C=AA=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig4cloud/pig/admin/controller/SysDictController.java | 5 +++-- .../pig/admin/service/impl/SysDictItemServiceImpl.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java index c9b10d1c3..0fb87a426 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java @@ -76,7 +76,8 @@ public class SysDictController { @GetMapping("/page") public R> getDictPage(Page page, SysDict sysDict) { return R.ok(sysDictService.page(page, Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()))); + .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()) + .orderByDesc(SysDict::getUpdateTime))); } /** @@ -87,7 +88,7 @@ public class SysDictController { @GetMapping("/key/{key}") @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#key") public R> getDictByKey(@PathVariable String key) { - return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictKey, key))); + return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictKey, key).orderByAsc(SysDictItem::getSortOrder))); } /** diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictItemServiceImpl.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictItemServiceImpl.java index 65c729f22..b43e6dc66 100755 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictItemServiceImpl.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/service/impl/SysDictItemServiceImpl.java @@ -65,7 +65,7 @@ public class SysDictItemServiceImpl extends ServiceImpl Date: Thu, 27 Apr 2023 14:56:39 +0800 Subject: [PATCH 075/105] =?UTF-8?q?:art:=20Improving=20structure=20/=20for?= =?UTF-8?q?mat=20of=20the=20code.=20=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/admin/controller/SysDictController.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java index 0fb87a426..3817925ab 100644 --- a/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java +++ b/pig-upms/pig-upms-biz/src/main/java/com/pig4cloud/pig/admin/controller/SysDictController.java @@ -75,9 +75,10 @@ public class SysDictController { */ @GetMapping("/page") public R> getDictPage(Page page, SysDict sysDict) { - return R.ok(sysDictService.page(page, Wrappers.lambdaQuery() - .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()) - .orderByDesc(SysDict::getUpdateTime))); + return R.ok(sysDictService.page(page, + Wrappers.lambdaQuery() + .like(StrUtil.isNotBlank(sysDict.getDictKey()), SysDict::getDictKey, sysDict.getDictKey()) + .orderByDesc(SysDict::getUpdateTime))); } /** @@ -88,7 +89,10 @@ public class SysDictController { @GetMapping("/key/{key}") @Cacheable(value = CacheConstants.DICT_DETAILS, key = "#key") public R> getDictByKey(@PathVariable String key) { - return R.ok(sysDictItemService.list(Wrappers.query().lambda().eq(SysDictItem::getDictKey, key).orderByAsc(SysDictItem::getSortOrder))); + return R.ok(sysDictItemService.list(Wrappers.query() + .lambda() + .eq(SysDictItem::getDictKey, key) + .orderByAsc(SysDictItem::getSortOrder))); } /** -- Gitee From 1911f1847b56d25235139302c80d2ccf2b18df9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 08:09:00 +0800 Subject: [PATCH 076/105] =?UTF-8?q?:construction=5Fworker:=20github?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=89=AB=E6=8F=8F=E4=BE=9D=E8=B5=96=E5=B9=B6?= =?UTF-8?q?=E5=88=9B=E5=BB=BAPR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..3e81d44ff --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,30 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +# https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "maven" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + # https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#ignore + ignore: + - dependency-name: org.springframework.boot:spring-boot-dependencies + # spring-boot 3.0 不支持 JDK 8 + versions: + - ">= 3" + - dependency-name: org.springframework.cloud:spring-cloud-dependencies + # spring-cloud 2022 不支持 JDK 8 + versions: + - ">= 2022" + - dependency-name: de.codecentric:spring-boot-admin-dependencies + # spring-boot-admin 3.0 不支持 JDK 8 + versions: + - ">= 3" + - dependency-name: org.springframework.security:spring-security-oauth2-authorization-server + # spring-security-oauth2-authorization-server 1.0 不支持 JDK 8 + versions: + - ">= 1" -- Gitee From 876fb059b33393cca6d9d46d919bc3d7283f614f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 08:11:56 +0800 Subject: [PATCH 077/105] =?UTF-8?q?:construction=5Fworker:=20github?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=89=AB=E6=8F=8F=E4=BE=9D=E8=B5=96=E5=B9=B6?= =?UTF-8?q?=E5=88=9B=E5=BB=BAPR=EF=BC=9A=E9=99=90=E5=88=B6=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3e81d44ff..f71c644f7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,6 +10,7 @@ updates: directory: "/" # Location of package manifests schedule: interval: "daily" + target-branch: "dev" # https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#ignore ignore: - dependency-name: org.springframework.boot:spring-boot-dependencies -- Gitee From ac5f59ca56b1642d7d18c601d82208b5ebbf7470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 10:10:24 +0800 Subject: [PATCH 078/105] =?UTF-8?q?:construction=5Fworker:=20github?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=89=AB=E6=8F=8F=E4=BE=9D=E8=B5=96=E5=B9=B6?= =?UTF-8?q?=E5=88=9B=E5=BB=BAPR=EF=BC=9A=E9=99=90=E5=88=B6spring-cloud-ali?= =?UTF-8?q?baba=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f71c644f7..dfac2bc44 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -21,6 +21,14 @@ updates: # spring-cloud 2022 不支持 JDK 8 versions: - ">= 2022" + - dependency-name: com.alibaba.cloud:spring-cloud-alibaba-dependencies + # spring-cloud-alibaba 2022 不支持 JDK 8 + versions: + - ">= 2022" + - dependency-name: com.alibaba.cloud:spring-cloud-alibaba-dependencies + # spring-cloud-alibaba 2021.1 为命名错误 + versions: + - "= 2021.1" - dependency-name: de.codecentric:spring-boot-admin-dependencies # spring-boot-admin 3.0 不支持 JDK 8 versions: -- Gitee From 6db720cd06d9c5b84bb831a298bce0c3f54f841b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 10:13:11 +0800 Subject: [PATCH 079/105] =?UTF-8?q?:construction=5Fworker:=20github?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=89=AB=E6=8F=8F=E4=BE=9D=E8=B5=96=E5=B9=B6?= =?UTF-8?q?=E5=88=9B=E5=BB=BAPR=EF=BC=9A=E7=9B=AE=E6=A0=87=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dfac2bc44..e2a4b3de7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,6 +10,7 @@ updates: directory: "/" # Location of package manifests schedule: interval: "daily" + # 目标分支 target-branch: "dev" # https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#ignore ignore: @@ -37,3 +38,17 @@ updates: # spring-security-oauth2-authorization-server 1.0 不支持 JDK 8 versions: - ">= 1" + + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "daily" + # 目标分支 + target-branch: "sca-springboot3" + + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "daily" + # 目标分支 + target-branch: "sct-springboot3" -- Gitee From 9949a72838f8f4f4cb829c6453032a0de3e919b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 17:06:45 +0800 Subject: [PATCH 080/105] =?UTF-8?q?:construction=5Fworker:=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20java=2017=20=E7=94=A8=E4=BA=8E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=9C=A8=20java=2017=20=E7=9A=84=E7=8E=AF=E5=A2=83=E4=B8=8B?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=83=BD=E8=BF=90=E8=A1=8C=20=E6=AF=94?= =?UTF-8?q?=E5=A6=82=EF=BC=9A=E9=98=B2=E6=AD=A2=E5=9C=A8=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=B8=AD=E4=BD=BF=E7=94=A8=E4=BA=86=E4=B8=80=E4=BA=9B=20sun=20?= =?UTF-8?q?=E5=8C=85=E4=B8=8B=E7=9A=84=E7=B1=BB=EF=BC=8C=E8=80=8C=20java?= =?UTF-8?q?=2017=20=E4=B8=8D=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 082741b94..9b2b57360 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java-version: [ 8, 11 ] + java-version: [ 8, 11, 17 ] steps: - uses: actions/checkout@v2 - name: Set up JDK ${{ matrix.java-version }} -- Gitee From 118ddf45ae60590312f74fc55022317b93118cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Mon, 8 May 2023 17:27:55 +0800 Subject: [PATCH 081/105] =?UTF-8?q?:construction=5Fworker:=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/maven.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 082741b94..d8b1568d2 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,9 +16,9 @@ jobs: matrix: java-version: [ 8, 11 ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java-version }} distribution: 'zulu' -- Gitee From 1b58b391b0270df10de83bfe69ee19374b842135 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 07:53:26 +0000 Subject: [PATCH 082/105] :arrow_up: Bump mysql-connector-j from 8.0.31 to 8.0.33 Bumps [mysql-connector-j](https://github.com/mysql/mysql-connector-j) from 8.0.31 to 8.0.33. - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/8.0/CHANGES) - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.0.31...8.0.33) --- updated-dependencies: - dependency-name: com.mysql:mysql-connector-j dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index ef5e0fac5..42a7d31d3 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -26,7 +26,7 @@ 1.6.9 2.2.0 3.5.3.1 - 8.0.31 + 8.0.33 1.6.1 1.2.6 7.1 -- Gitee From 06a5cda10bba1aa8c65c85136af2d695d2d4db5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 07:53:49 +0000 Subject: [PATCH 083/105] :arrow_up: Bump hutool-bom from 5.8.17 to 5.8.18 Bumps [hutool-bom](https://github.com/looly/hutool) from 5.8.17 to 5.8.18. - [Release notes](https://github.com/looly/hutool/releases) - [Changelog](https://github.com/dromara/hutool/blob/v5-master/CHANGELOG.md) - [Commits](https://github.com/looly/hutool/commits) --- updated-dependencies: - dependency-name: cn.hutool:hutool-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index ef5e0fac5..6ba2abc24 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.17 + 5.8.18 2.7.4 1.8.4 -- Gitee From 8e2d1da99acce3a756eea30a7915b9b435d4f58a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 May 2023 07:53:54 +0000 Subject: [PATCH 084/105] :arrow_up: Bump spring-cloud-dependencies from 2021.0.6 to 2021.0.7 Bumps [spring-cloud-dependencies](https://github.com/spring-cloud/spring-cloud-build) from 2021.0.6 to 2021.0.7. - [Commits](https://github.com/spring-cloud/spring-cloud-build/commits) --- updated-dependencies: - dependency-name: org.springframework.cloud:spring-cloud-dependencies dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 pom.xml diff --git a/pom.xml b/pom.xml old mode 100755 new mode 100644 index b716876a8..acbfa2512 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.7.11 - 2021.0.6 + 2021.0.7 2021.0.5.0 UTF-8 1.8 -- Gitee From d0ac469e01c88b7480ea4c92bd21d1544b317542 Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 12 May 2023 16:00:49 +0800 Subject: [PATCH 085/105] =?UTF-8?q?:green=5Fheart:=20Fixing=20CI=20Build.?= =?UTF-8?q?=20ci=20=E4=B8=8D=E6=94=AF=E6=8C=81mirror?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/mirror.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/mirror.yml b/.github/workflows/mirror.yml index 47028f88f..35d6cb69b 100644 --- a/.github/workflows/mirror.yml +++ b/.github/workflows/mirror.yml @@ -3,8 +3,6 @@ name: 同步代码 on: push: branches: [ master,dev ] - pull_request: - branches: [ master,dev ] jobs: sync: -- Gitee From 00984915b4988c35670573eadef507e4ff727f3b Mon Sep 17 00:00:00 2001 From: xianxin Date: Fri, 12 May 2023 17:06:27 +0800 Subject: [PATCH 086/105] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98Red?= =?UTF-8?q?isUtils=E5=B7=A5=E5=85=B7=E7=B1=BB=EF=BC=8C=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E4=BA=86=E5=90=84=E7=A7=8DRedisTemplate=E5=90=84=E7=A7=8D?= =?UTF-8?q?=E8=AF=AD=E6=B3=95=E7=B3=96=EF=BC=8C=E5=93=8D=E5=BA=94=E4=BD=93?= =?UTF-8?q?R=E4=B8=AD=E5=A2=9E=E5=8A=A0=E5=86=85=E9=83=A8=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=98=AF=E5=90=A6=E6=88=90=E5=8A=9F=E5=88=A4=E6=96=AD?= =?UTF-8?q?R.isSuccess()=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E8=BF=94=E5=9B=9E=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=A0=81R.result(null,=201001,=20"=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E6=8F=90=E7=A4=BA")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pig4cloud/pig/common/core/util/R.java | 8 + .../pig/common/core/util/RedisUtils.java | 819 ++++++++++++++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + 3 files changed, 828 insertions(+) create mode 100644 pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java index 7b79afa24..e33f1491f 100755 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/R.java @@ -76,6 +76,10 @@ public class R implements Serializable { return restResult(data, CommonConstants.FAIL, msg); } + public static R result(T data, int code, String msg) { + return restResult(data, code, msg); + } + public static R restResult(T data, int code, String msg) { R apiResult = new R<>(); apiResult.setCode(code); @@ -84,4 +88,8 @@ public class R implements Serializable { return apiResult; } + public Boolean isSuccess() { + return (this.code == CommonConstants.SUCCESS); + } + } diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java new file mode 100644 index 000000000..4172fc545 --- /dev/null +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java @@ -0,0 +1,819 @@ +package com.pig4cloud.pig.common.core.util; + +import cn.hutool.core.convert.Convert; +import lombok.experimental.UtilityClass; +import org.springframework.data.redis.connection.RedisConnection; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.*; +import org.springframework.data.redis.core.script.DefaultRedisScript; +import org.springframework.data.redis.core.script.RedisScript; +import org.springframework.util.CollectionUtils; + +import java.util.*; +import java.util.concurrent.TimeUnit; + +/** + * 缓存工具类 + * + * @author XX + * @date 2023/05/12 + */ +@UtilityClass +public class RedisUtils { + + private static final Long SUCCESS = 1L; + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) + */ + public boolean expire(String key, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + + /** + * 根据 key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(Object key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 查找匹配key + * + * @param pattern key + * @return / + */ + public List scan(String pattern) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(); + while (cursor.hasNext()) { + result.add(new String(cursor.next())); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 分页查询 key + * + * @param patternKey key + * @param page 页码 + * @param size 每页数目 + * @return / + */ + public List findKeysForPage(String patternKey, int page, int size) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(size); + int tmpIndex = 0; + int fromIndex = page * size; + int toIndex = page * size + size; + while (cursor.hasNext()) { + if (tmpIndex >= fromIndex && tmpIndex < toIndex) { + result.add(new String(cursor.next())); + tmpIndex++; + continue; + } + // 获取到满足条件的数据后,就可以退出了 + if (tmpIndex >= toIndex) { + break; + } + tmpIndex++; + cursor.next(); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + public void del(String... key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + /** + * 获取锁 + * + * @param lockKey 锁key + * @param value value + * @param expireTime:单位-秒 + * @return boolean + */ + public boolean getLock(String lockKey, String value, int expireTime) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Boolean result = false; + try { + result = redisTemplate.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS); + if (null == result) { + result = false; + } + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 释放锁 + * + * @param lockKey 锁key + * @param value value + * @return boolean + */ + public boolean releaseLock(String lockKey, String value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; + RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); + Object result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value); + if (SUCCESS.equals(Convert.toLong(result))) { + return true; + } + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + // ============================String============================= + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public Object get(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + /** + * 批量获取 + * + * @param keys + * @return + */ + public List multiGet(List keys) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Object obj = redisTemplate.opsForValue().multiGet(Collections.singleton(keys)); + return null; + } + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForValue().set(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间 + * @param timeUnit 类型 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time, TimeUnit timeUnit) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, timeUnit); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + // ================================Map================================= + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().entries(key); + + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * HashSet 并设置时间 + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + redisTemplate.opsForHash().delete(key, item); + } + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().hasKey(key, item); + } + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().increment(key, item, by); + } + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().increment(key, item, -by); + } + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + * @return + */ + public Set sGet(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().members(key); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().isMember(key, value); + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().add(key, values); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) { + expire(key, time); + } + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 获取set缓存的长度 + * + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 获集合key1和集合key2的差集元素 + * + * @param key 键 + * @return + */ + public Set sDifference(String key, String otherKey) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().difference(key, otherKey); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + // ===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().range(key, start, end); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 获取list缓存的长度 + * + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().index(key, index); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return / + */ + public boolean lUpdateIndex(String key, long index, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().remove(key, count, value); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 将zSet数据放入缓存 + * + * @param key + * @param time + * @param tuples + * @return + */ + public long zSetAndTime(String key, long time, Set> tuples) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForZSet().add(key, tuples); + if (time > 0) { + expire(key, time); + } + return count; + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * Sorted set:有序集合获取 + * + * @param key + * @param min + * @param max + * @return + */ + public Set zRangeByScore(String key, double min, double max) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.rangeByScore(key, min, max); + + } + + /** + * Sorted set:有序集合获取 正序 + * + * @param key + * @param start + * @param end + * @return + */ + public Set zRange(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.range(key, start, end); + + } + + /** + * Sorted set:有序集合获取 倒叙 + * + * @param key + * @param start + * @param end + * @return + */ + public Set zReverseRange(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.reverseRange(key, start, end); + + } + + /** + * 获取zSet缓存的长度 + * + * @param key 键 + * @return + */ + public long zGetSetSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForZSet().size(key); + } catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + +} diff --git a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 6fe4f1ad4..81cc2017e 100644 --- a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -4,3 +4,4 @@ com.pig4cloud.pig.common.core.config.RedisTemplateConfiguration com.pig4cloud.pig.common.core.config.RestTemplateConfiguration com.pig4cloud.pig.common.core.util.SpringContextHolder com.pig4cloud.pig.common.core.config.WebMvcConfiguration +com.pig4cloud.pig.common.core.util.RedisUtils \ No newline at end of file -- Gitee From 42942ba4ae1524116e6c054c6ed3505c8ca2867a Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 13 May 2023 10:56:58 +0800 Subject: [PATCH 087/105] =?UTF-8?q?:art:=20Improving=20structure=20/=20for?= =?UTF-8?q?mat=20of=20the=20code.=20=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/common/core/util/RedisUtils.java | 1578 ++++++++--------- 1 file changed, 784 insertions(+), 794 deletions(-) diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java index 4172fc545..fe17651d4 100644 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java @@ -21,799 +21,789 @@ import java.util.concurrent.TimeUnit; @UtilityClass public class RedisUtils { - private static final Long SUCCESS = 1L; - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) - */ - public boolean expire(String key, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - } catch (Exception e) { - e.printStackTrace(); - return false; - } - return true; - } - - /** - * 根据 key 获取过期时间 - * - * @param key 键 不能为null - * @return 时间(秒) 返回0代表为永久有效 - */ - public long getExpire(Object key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.getExpire(key, TimeUnit.SECONDS); - } - - /** - * 查找匹配key - * - * @param pattern key - * @return / - */ - public List scan(String pattern) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(); - while (cursor.hasNext()) { - result.add(new String(cursor.next())); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - e.printStackTrace(); - } - return result; - } - - /** - * 分页查询 key - * - * @param patternKey key - * @param page 页码 - * @param size 每页数目 - * @return / - */ - public List findKeysForPage(String patternKey, int page, int size) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(size); - int tmpIndex = 0; - int fromIndex = page * size; - int toIndex = page * size + size; - while (cursor.hasNext()) { - if (tmpIndex >= fromIndex && tmpIndex < toIndex) { - result.add(new String(cursor.next())); - tmpIndex++; - continue; - } - // 获取到满足条件的数据后,就可以退出了 - if (tmpIndex >= toIndex) { - break; - } - tmpIndex++; - cursor.next(); - } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } catch (Exception e) { - e.printStackTrace(); - } - return result; - } - - /** - * 判断key是否存在 - * - * @param key 键 - * @return true 存在 false不存在 - */ - public boolean hasKey(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.hasKey(key); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除缓存 - * - * @param key 可以传一个值 或多个 - */ - public void del(String... key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - if (key != null && key.length > 0) { - if (key.length == 1) { - redisTemplate.delete(key[0]); - } else { - redisTemplate.delete(CollectionUtils.arrayToList(key)); - } - } - } - - /** - * 获取锁 - * - * @param lockKey 锁key - * @param value value - * @param expireTime:单位-秒 - * @return boolean - */ - public boolean getLock(String lockKey, String value, int expireTime) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - Boolean result = false; - try { - result = redisTemplate.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS); - if (null == result) { - result = false; - } - } catch (Exception e) { - e.printStackTrace(); - } - return result; - } - - /** - * 释放锁 - * - * @param lockKey 锁key - * @param value value - * @return boolean - */ - public boolean releaseLock(String lockKey, String value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; - RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); - Object result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value); - if (SUCCESS.equals(Convert.toLong(result))) { - return true; - } - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - // ============================String============================= - - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public Object get(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 批量获取 - * - * @param keys - * @return - */ - public List multiGet(List keys) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - Object obj = redisTemplate.opsForValue().multiGet(Collections.singleton(keys)); - return null; - } - - /** - * 普通缓存放入 - * - * @param key 键 - * @param value 值 - * @return true成功 false失败 - */ - public boolean set(String key, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间 - * @param timeUnit 类型 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time, TimeUnit timeUnit) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, timeUnit); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - // ================================Map================================= - - /** - * HashGet - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return 值 - */ - public Object hget(String key, String item) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 - * - * @param key 键 - * @return 对应的多个键值 - */ - public Map hmget(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().entries(key); - - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @return true 成功 false 失败 - */ - public boolean hmset(String key, Map map) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * HashSet 并设置时间 - * - * @param key 键 - * @param map 对应多个键值 - * @param time 时间(秒) - * @return true成功 false失败 - */ - public boolean hmset(String key, Map map, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().putAll(key, map); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().put(key, item, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除hash表中的值 - * - * @param key 键 不能为null - * @param item 项 可以使多个 不能为null - */ - public void hdel(String key, Object... item) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - redisTemplate.opsForHash().delete(key, item); - } - - /** - * 判断hash表中是否有该项的值 - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return true 存在 false不存在 - */ - public boolean hHasKey(String key, String item) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().hasKey(key, item); - } - - /** - * hash递增 如果不存在,就会创建一个 并把新增后的值返回 - * - * @param key 键 - * @param item 项 - * @param by 要增加几(大于0) - * @return - */ - public double hincr(String key, String item, double by) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().increment(key, item, by); - } - - /** - * hash递减 - * - * @param key 键 - * @param item 项 - * @param by 要减少记(小于0) - * @return - */ - public double hdecr(String key, String item, double by) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().increment(key, item, -by); - } - - // ============================set============================= - - /** - * 根据key获取Set中的所有值 - * - * @param key 键 - * @return - */ - public Set sGet(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().members(key); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 根据value从一个set中查询,是否存在 - * - * @param key 键 - * @param value 值 - * @return true 存在 false不存在 - */ - public boolean sHasKey(String key, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().isMember(key, value); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将数据放入set缓存 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSet(String key, Object... values) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().add(key, values); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 将set数据放入缓存 - * - * @param key 键 - * @param time 时间(秒) - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSetAndTime(String key, long time, Object... values) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 获取set缓存的长度 - * - * @param key 键 - * @return - */ - public long sGetSetSize(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 移除值为value的 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 移除的个数 - */ - public long setRemove(String key, Object... values) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForSet().remove(key, values); - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 获集合key1和集合key2的差集元素 - * - * @param key 键 - * @return - */ - public Set sDifference(String key, String otherKey) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().difference(key, otherKey); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - // ===============================list================================= - - /** - * 获取list缓存的内容 - * - * @param key 键 - * @param start 开始 - * @param end 结束 0 到 -1代表所有值 - * @return - */ - public List lGet(String key, long start, long end) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().range(key, start, end); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 获取list缓存的长度 - * - * @param key 键 - * @return - */ - public long lGetListSize(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 通过索引 获取list中的值 - * - * @param key 键 - * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 - * @return - */ - public Object lGetIndex(String key, long index) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().index(key, index); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @return - */ - public boolean lSet(String key, List value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, List value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 根据索引修改list中的某条数据 - * - * @param key 键 - * @param index 索引 - * @param value 值 - * @return / - */ - public boolean lUpdateIndex(String key, long index, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 移除N个值为value - * - * @param key 键 - * @param count 移除多少个 - * @param value 值 - * @return 移除的个数 - */ - public long lRemove(String key, long count, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().remove(key, count, value); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 将zSet数据放入缓存 - * - * @param key - * @param time - * @param tuples - * @return - */ - public long zSetAndTime(String key, long time, Set> tuples) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForZSet().add(key, tuples); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * Sorted set:有序集合获取 - * - * @param key - * @param min - * @param max - * @return - */ - public Set zRangeByScore(String key, double min, double max) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - ZSetOperations zset = redisTemplate.opsForZSet(); - return zset.rangeByScore(key, min, max); - - } - - /** - * Sorted set:有序集合获取 正序 - * - * @param key - * @param start - * @param end - * @return - */ - public Set zRange(String key, long start, long end) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - ZSetOperations zset = redisTemplate.opsForZSet(); - return zset.range(key, start, end); - - } - - /** - * Sorted set:有序集合获取 倒叙 - * - * @param key - * @param start - * @param end - * @return - */ - public Set zReverseRange(String key, long start, long end) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - ZSetOperations zset = redisTemplate.opsForZSet(); - return zset.reverseRange(key, start, end); - - } - - /** - * 获取zSet缓存的长度 - * - * @param key 键 - * @return - */ - public long zGetSetSize(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForZSet().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } + private static final Long SUCCESS = 1L; + + /** + * 指定缓存失效时间 + * @param key 键 + * @param time 时间(秒) + */ + public boolean expire(String key, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; + } + + /** + * 根据 key 获取过期时间 + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(Object key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 查找匹配key + * @param pattern key + * @return / + */ + public List scan(String pattern) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(); + while (cursor.hasNext()) { + result.add(new String(cursor.next())); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } + catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 分页查询 key + * @param patternKey key + * @param page 页码 + * @param size 每页数目 + * @return / + */ + public List findKeysForPage(String patternKey, int page, int size) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ScanOptions options = ScanOptions.scanOptions().match(patternKey).build(); + RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(size); + int tmpIndex = 0; + int fromIndex = page * size; + int toIndex = page * size + size; + while (cursor.hasNext()) { + if (tmpIndex >= fromIndex && tmpIndex < toIndex) { + result.add(new String(cursor.next())); + tmpIndex++; + continue; + } + // 获取到满足条件的数据后,就可以退出了 + if (tmpIndex >= toIndex) { + break; + } + tmpIndex++; + cursor.next(); + } + try { + RedisConnectionUtils.releaseConnection(rc, factory); + } + catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 判断key是否存在 + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.hasKey(key); + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除缓存 + * @param key 可以传一个值 或多个 + */ + public void del(String... key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } + else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + /** + * 获取锁 + * @param lockKey 锁key + * @param value value + * @param expireTime:单位-秒 + * @return boolean + */ + public boolean getLock(String lockKey, String value, int expireTime) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Boolean result = false; + try { + result = redisTemplate.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS); + if (null == result) { + result = false; + } + } + catch (Exception e) { + e.printStackTrace(); + } + return result; + } + + /** + * 释放锁 + * @param lockKey 锁key + * @param value value + * @return boolean + */ + public boolean releaseLock(String lockKey, String value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; + RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); + Object result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value); + if (SUCCESS.equals(Convert.toLong(result))) { + return true; + } + } + catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + // ============================String============================= + + /** + * 普通缓存获取 + * @param key 键 + * @return 值 + */ + public Object get(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return key == null ? null : redisTemplate.opsForValue().get(key); + } + + /** + * 批量获取 + * @param keys + * @return + */ + public List multiGet(List keys) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Object obj = redisTemplate.opsForValue().multiGet(Collections.singleton(keys)); + return null; + } + + /** + * 普通缓存放入 + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForValue().set(key, value); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + } + else { + set(key, value); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 普通缓存放入并设置时间 + * @param key 键 + * @param value 值 + * @param time 时间 + * @param timeUnit 类型 + * @return true成功 false 失败 + */ + public boolean set(String key, Object value, long time, TimeUnit timeUnit) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + if (time > 0) { + redisTemplate.opsForValue().set(key, value, time, timeUnit); + } + else { + set(key, value); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + // ================================Map================================= + + /** + * HashGet + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().entries(key); + + } + + /** + * HashSet + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().putAll(key, map); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * HashSet 并设置时间 + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().put(key, item, value); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForHash().put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 删除hash表中的值 + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + redisTemplate.opsForHash().delete(key, item); + } + + /** + * 判断hash表中是否有该项的值 + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().hasKey(key, item); + } + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().increment(key, item, by); + } + + /** + * hash递减 + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().increment(key, item, -by); + } + + // ============================set============================= + + /** + * 根据key获取Set中的所有值 + * @param key 键 + * @return + */ + public Set sGet(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().members(key); + } + catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 根据value从一个set中查询,是否存在 + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().isMember(key, value); + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将数据放入set缓存 + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().add(key, values); + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 将set数据放入缓存 + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) { + expire(key, time); + } + return count; + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 获取set缓存的长度 + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().size(key); + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 移除值为value的 + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForSet().remove(key, values); + return count; + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 获集合key1和集合key2的差集元素 + * @param key 键 + * @return + */ + public Set sDifference(String key, String otherKey) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForSet().difference(key, otherKey); + } + catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + // ===============================list================================= + + /** + * 获取list缓存的内容 + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().range(key, start, end); + } + catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 获取list缓存的长度 + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().size(key); + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 通过索引 获取list中的值 + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().index(key, index); + } + catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPush(key, value); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, Object value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPushAll(key, value); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 将list放入缓存 + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * @param key 键 + * @param index 索引 + * @param value 值 + * @return / + */ + public boolean lUpdateIndex(String key, long index, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + redisTemplate.opsForList().set(key, index, value); + return true; + } + catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + /** + * 移除N个值为value + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForList().remove(key, count, value); + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * 将zSet数据放入缓存 + * @param key + * @param time + * @param tuples + * @return + */ + public long zSetAndTime(String key, long time, Set> tuples) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + Long count = redisTemplate.opsForZSet().add(key, tuples); + if (time > 0) { + expire(key, time); + } + return count; + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } + + /** + * Sorted set:有序集合获取 + * @param key + * @param min + * @param max + * @return + */ + public Set zRangeByScore(String key, double min, double max) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.rangeByScore(key, min, max); + + } + + /** + * Sorted set:有序集合获取 正序 + * @param key + * @param start + * @param end + * @return + */ + public Set zRange(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.range(key, start, end); + + } + + /** + * Sorted set:有序集合获取 倒叙 + * @param key + * @param start + * @param end + * @return + */ + public Set zReverseRange(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + ZSetOperations zset = redisTemplate.opsForZSet(); + return zset.reverseRange(key, start, end); + + } + + /** + * 获取zSet缓存的长度 + * @param key 键 + * @return + */ + public long zGetSetSize(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + try { + return redisTemplate.opsForZSet().size(key); + } + catch (Exception e) { + e.printStackTrace(); + return 0; + } + } } -- Gitee From e3a9127d4e772eedafc5aa7d42a3fea3e1c7747d Mon Sep 17 00:00:00 2001 From: lbw Date: Sun, 14 May 2023 23:39:57 +0800 Subject: [PATCH 088/105] =?UTF-8?q?:recycle:=20Refactoring=20code.=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=B3=9B=E5=9E=8B=E4=BC=98=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20RedisUtils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/common/core/util/RedisUtils.java | 434 ++++++------------ 1 file changed, 132 insertions(+), 302 deletions(-) diff --git a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java index fe17651d4..c02039a78 100644 --- a/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java +++ b/pig-common/pig-common-core/src/main/java/com/pig4cloud/pig/common/core/util/RedisUtils.java @@ -7,7 +7,6 @@ import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.*; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.core.script.RedisScript; -import org.springframework.util.CollectionUtils; import java.util.*; import java.util.concurrent.TimeUnit; @@ -29,16 +28,10 @@ public class RedisUtils { * @param time 时间(秒) */ public boolean expire(String key, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(redisTemplate) + .filter(template -> time > 0) + .ifPresent(template -> template.expire(key, time, TimeUnit.SECONDS)); return true; } @@ -48,8 +41,10 @@ public class RedisUtils { * @return 时间(秒) 返回0代表为永久有效 */ public long getExpire(Object key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.getExpire(key, TimeUnit.SECONDS); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate) + .map(template -> template.getExpire(key, TimeUnit.SECONDS)) + .orElse(-1L); } /** @@ -58,22 +53,19 @@ public class RedisUtils { * @return / */ public List scan(String pattern) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); ScanOptions options = ScanOptions.scanOptions().match(pattern).build(); - RedisConnectionFactory factory = redisTemplate.getConnectionFactory(); - RedisConnection rc = Objects.requireNonNull(factory).getConnection(); - Cursor cursor = rc.scan(options); - List result = new ArrayList<>(); - while (cursor.hasNext()) { - result.add(new String(cursor.next())); - } - try { + return Optional.ofNullable(redisTemplate).map(template -> { + RedisConnectionFactory factory = template.getConnectionFactory(); + RedisConnection rc = Objects.requireNonNull(factory).getConnection(); + Cursor cursor = rc.scan(options); + List result = new ArrayList<>(); + while (cursor.hasNext()) { + result.add(new String(cursor.next())); + } RedisConnectionUtils.releaseConnection(rc, factory); - } - catch (Exception e) { - e.printStackTrace(); - } - return result; + return result; + }).orElse(Collections.emptyList()); } /** @@ -106,12 +98,7 @@ public class RedisUtils { tmpIndex++; cursor.next(); } - try { - RedisConnectionUtils.releaseConnection(rc, factory); - } - catch (Exception e) { - e.printStackTrace(); - } + RedisConnectionUtils.releaseConnection(rc, factory); return result; } @@ -121,30 +108,20 @@ public class RedisUtils { * @return true 存在 false不存在 */ public boolean hasKey(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.hasKey(key); - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate).map(template -> template.hasKey(key)).orElse(false); } /** * 删除缓存 - * @param key 可以传一个值 或多个 + * @param keys 可以传一个值 或多个 */ - public void del(String... key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - if (key != null && key.length > 0) { - if (key.length == 1) { - redisTemplate.delete(key[0]); - } - else { - redisTemplate.delete(CollectionUtils.arrayToList(key)); - } - } + public void del(String... keys) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(keys) + .map(Arrays::asList) + .filter(keysList -> !keysList.isEmpty()) + .ifPresent(redisTemplate::delete); } /** @@ -155,18 +132,10 @@ public class RedisUtils { * @return boolean */ public boolean getLock(String lockKey, String value, int expireTime) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - Boolean result = false; - try { - result = redisTemplate.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS); - if (null == result) { - result = false; - } - } - catch (Exception e) { - e.printStackTrace(); - } - return result; + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate) + .map(template -> template.opsForValue().setIfAbsent(lockKey, value, expireTime, TimeUnit.SECONDS)) + .orElse(false); } /** @@ -176,19 +145,13 @@ public class RedisUtils { * @return boolean */ public boolean releaseLock(String lockKey, String value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; - RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); - Object result = redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value); - if (SUCCESS.equals(Convert.toLong(result))) { - return true; - } - } - catch (Exception e) { - e.printStackTrace(); - } - return false; + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; + RedisScript redisScript = new DefaultRedisScript<>(script, Long.class); + return Optional.ofNullable(redisTemplate.execute(redisScript, Collections.singletonList(lockKey), value)) + .map(Convert::toLong) + .filter(SUCCESS::equals) + .isPresent(); } // ============================String============================= @@ -198,9 +161,9 @@ public class RedisUtils { * @param key 键 * @return 值 */ - public Object get(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return key == null ? null : redisTemplate.opsForValue().get(key); + public T get(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForValue().get(key); } /** @@ -208,10 +171,9 @@ public class RedisUtils { * @param keys * @return */ - public List multiGet(List keys) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - Object obj = redisTemplate.opsForValue().multiGet(Collections.singleton(keys)); - return null; + public List multiGet(List keys) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForValue().multiGet(keys); } /** @@ -221,15 +183,12 @@ public class RedisUtils { * @return true成功 false失败 */ public boolean set(String key, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForValue().set(key, value); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(redisTemplate).map(template -> { + template.opsForValue().set(key, value); return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }); + return true; } /** @@ -240,20 +199,16 @@ public class RedisUtils { * @return true成功 false 失败 */ public boolean set(String key, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate).map(template -> { if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); + template.opsForValue().set(key, value, time, TimeUnit.SECONDS); } else { - set(key, value); + template.opsForValue().set(key, value); } return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }).orElse(false); } /** @@ -264,21 +219,18 @@ public class RedisUtils { * @param timeUnit 类型 * @return true成功 false 失败 */ - public boolean set(String key, Object value, long time, TimeUnit timeUnit) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { + public boolean set(String key, T value, long time, TimeUnit timeUnit) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(redisTemplate).map(template -> { if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, timeUnit); + template.opsForValue().set(key, value, time, timeUnit); } else { - set(key, value); + template.opsForValue().set(key, value); } return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }); + return true; } // ================================Map================================= @@ -286,12 +238,12 @@ public class RedisUtils { /** * HashGet * @param key 键 不能为null - * @param item 项 不能为null + * @param hashKey 项 不能为null * @return 值 */ - public Object hget(String key, String item) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().get(key, item); + public HV hget(String key, HK hashKey) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().get(key, hashKey); } /** @@ -299,10 +251,9 @@ public class RedisUtils { * @param key 键 * @return 对应的多个键值 */ - public Map hmget(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - return redisTemplate.opsForHash().entries(key); - + public Map hmget(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForHash().entries(key); } /** @@ -312,15 +263,12 @@ public class RedisUtils { * @return true 成功 false 失败 */ public boolean hmset(String key, Map map) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().putAll(key, map); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(redisTemplate).map(template -> { + template.opsForHash().putAll(key, map); return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }); + return true; } /** @@ -331,18 +279,15 @@ public class RedisUtils { * @return true成功 false失败 */ public boolean hmset(String key, Map map, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().putAll(key, map); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + Optional.ofNullable(redisTemplate).map(template -> { + template.opsForHash().putAll(key, map); if (time > 0) { - expire(key, time); + template.expire(key, time, TimeUnit.SECONDS); } return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }); + return true; } /** @@ -353,15 +298,11 @@ public class RedisUtils { * @return true 成功 false失败 */ public boolean hset(String key, String item, Object value) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().put(key, item, value); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate).map(template -> { + template.opsForHash().put(key, item, value); return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }).orElse(false); } /** @@ -373,18 +314,14 @@ public class RedisUtils { * @return true 成功 false失败 */ public boolean hset(String key, String item, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForHash().put(key, item, value); + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return Optional.ofNullable(redisTemplate).map(template -> { + template.opsForHash().put(key, item, value); if (time > 0) { - expire(key, time); + template.expire(key, time, TimeUnit.SECONDS); } return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + }).orElse(false); } /** @@ -439,15 +376,9 @@ public class RedisUtils { * @param key 键 * @return */ - public Set sGet(String key) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().members(key); - } - catch (Exception e) { - e.printStackTrace(); - return null; - } + public Set sGet(String key) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForSet().members(key); } /** @@ -458,13 +389,7 @@ public class RedisUtils { */ public boolean sHasKey(String key, Object value) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().isMember(key, value); - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + return redisTemplate.opsForSet().isMember(key, value); } /** @@ -475,13 +400,7 @@ public class RedisUtils { */ public long sSet(String key, Object... values) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().add(key, values); - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + return redisTemplate.opsForSet().add(key, values); } /** @@ -493,17 +412,11 @@ public class RedisUtils { */ public long sSetAndTime(String key, long time, Object... values) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } - catch (Exception e) { - e.printStackTrace(); - return 0; + Long count = redisTemplate.opsForSet().add(key, values); + if (time > 0) { + expire(key, time); } + return count; } /** @@ -513,13 +426,7 @@ public class RedisUtils { */ public long sGetSetSize(String key) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().size(key); - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + return redisTemplate.opsForSet().size(key); } /** @@ -530,14 +437,8 @@ public class RedisUtils { */ public long setRemove(String key, Object... values) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForSet().remove(key, values); - return count; - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + Long count = redisTemplate.opsForSet().remove(key, values); + return count; } /** @@ -545,15 +446,9 @@ public class RedisUtils { * @param key 键 * @return */ - public Set sDifference(String key, String otherKey) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForSet().difference(key, otherKey); - } - catch (Exception e) { - e.printStackTrace(); - return null; - } + public Set sDifference(String key, String otherKey) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForSet().difference(key, otherKey); } // ===============================list================================= @@ -565,15 +460,9 @@ public class RedisUtils { * @param end 结束 0 到 -1代表所有值 * @return */ - public List lGet(String key, long start, long end) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().range(key, start, end); - } - catch (Exception e) { - e.printStackTrace(); - return null; - } + public List lGet(String key, long start, long end) { + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + return redisTemplate.opsForList().range(key, start, end); } /** @@ -583,13 +472,7 @@ public class RedisUtils { */ public long lGetListSize(String key) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().size(key); - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + return redisTemplate.opsForList().size(key); } /** @@ -600,13 +483,7 @@ public class RedisUtils { */ public Object lGetIndex(String key, long index) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().index(key, index); - } - catch (Exception e) { - e.printStackTrace(); - return null; - } + return redisTemplate.opsForList().index(key, index); } /** @@ -617,14 +494,8 @@ public class RedisUtils { */ public boolean lSet(String key, Object value) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + redisTemplate.opsForList().rightPush(key, value); + return true; } /** @@ -635,18 +506,12 @@ public class RedisUtils { * @return */ public boolean lSet(String key, Object value, long time) { - RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; + RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); + redisTemplate.opsForList().rightPush(key, value); + if (time > 0) { + Optional.ofNullable(redisTemplate).ifPresent(template -> template.expire(key, time, TimeUnit.SECONDS)); } + return true; } /** @@ -657,14 +522,8 @@ public class RedisUtils { */ public boolean lSet(String key, List value) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + redisTemplate.opsForList().rightPushAll(key, value); + return true; } /** @@ -676,17 +535,11 @@ public class RedisUtils { */ public boolean lSet(String key, List value, long time) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; + redisTemplate.opsForList().rightPushAll(key, value); + if (time > 0) { + expire(key, time); } + return true; } /** @@ -698,14 +551,8 @@ public class RedisUtils { */ public boolean lUpdateIndex(String key, long index, Object value) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } - catch (Exception e) { - e.printStackTrace(); - return false; - } + redisTemplate.opsForList().set(key, index, value); + return true; } /** @@ -717,13 +564,7 @@ public class RedisUtils { */ public long lRemove(String key, long count, Object value) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForList().remove(key, count, value); - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + return redisTemplate.opsForList().remove(key, count, value); } /** @@ -735,17 +576,12 @@ public class RedisUtils { */ public long zSetAndTime(String key, long time, Set> tuples) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - Long count = redisTemplate.opsForZSet().add(key, tuples); - if (time > 0) { - expire(key, time); - } - return count; - } - catch (Exception e) { - e.printStackTrace(); - return 0; + Long count = redisTemplate.opsForZSet().add(key, tuples); + if (time > 0) { + expire(key, time); } + return count; + } /** @@ -797,13 +633,7 @@ public class RedisUtils { */ public long zGetSetSize(String key) { RedisTemplate redisTemplate = SpringContextHolder.getBean(RedisTemplate.class); - try { - return redisTemplate.opsForZSet().size(key); - } - catch (Exception e) { - e.printStackTrace(); - return 0; - } + return redisTemplate.opsForZSet().size(key); } } -- Gitee From 3b5860077db20640df8aea6247e15c4111b4b3c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Tue, 16 May 2023 10:33:51 +0800 Subject: [PATCH 089/105] =?UTF-8?q?:construction=5Fworker:=20spring-boot-a?= =?UTF-8?q?dmin=203.0=20=E4=B8=8D=E6=94=AF=E6=8C=81=20JDK=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e2a4b3de7..f2d60dfac 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -34,6 +34,10 @@ updates: # spring-boot-admin 3.0 不支持 JDK 8 versions: - ">= 3" + - dependency-name: de.codecentric:spring-boot-admin-starter-server + # spring-boot-admin 3.0 不支持 JDK 8 + versions: + - ">= 3" - dependency-name: org.springframework.security:spring-security-oauth2-authorization-server # spring-security-oauth2-authorization-server 1.0 不支持 JDK 8 versions: -- Gitee From 803972592457e392ab975fd89e3c56c92813f443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Tue, 16 May 2023 11:00:26 +0800 Subject: [PATCH 090/105] =?UTF-8?q?:construction=5Fworker:=20git-commit-id?= =?UTF-8?q?-maven-plugin=205.0=20=E4=B8=8D=E6=94=AF=E6=8C=81=20JDK=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f2d60dfac..c216d4f1f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -38,6 +38,10 @@ updates: # spring-boot-admin 3.0 不支持 JDK 8 versions: - ">= 3" + - dependency-name: io.github.git-commit-id:git-commit-id-maven-plugin + # git-commit-id-maven-plugin 5.0 不支持 JDK 8 + versions: + - ">= 5" - dependency-name: org.springframework.security:spring-security-oauth2-authorization-server # spring-security-oauth2-authorization-server 1.0 不支持 JDK 8 versions: -- Gitee From 2a67f10493b3cb43e5f24575d2ec5296733cba7e Mon Sep 17 00:00:00 2001 From: twelvet <2471835953@qq.com> Date: Fri, 19 May 2023 05:33:07 +0000 Subject: [PATCH 091/105] Spring boot 2.7.12 Signed-off-by: twelvet <2471835953@qq.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index acbfa2512..638d0d8bc 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ https://www.pig4cloud.com - 2.7.11 + 2.7.12 2021.0.7 2021.0.5.0 UTF-8 -- Gitee From c0681cf572b619c1fd3c61ba3879cc04be33961f Mon Sep 17 00:00:00 2001 From: lbw Date: Fri, 26 May 2023 15:55:54 +0800 Subject: [PATCH 092/105] :green_heart: Fixing CI Build. remove dependabot.yml --- .github/dependabot.yml | 62 ------------------------------------------ README.md | 28 ++++++------------- 2 files changed, 9 insertions(+), 81 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index c216d4f1f..000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,62 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates -# https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file - -version: 2 -updates: - - package-ecosystem: "maven" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "daily" - # 目标分支 - target-branch: "dev" - # https://docs.github.com/zh/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#ignore - ignore: - - dependency-name: org.springframework.boot:spring-boot-dependencies - # spring-boot 3.0 不支持 JDK 8 - versions: - - ">= 3" - - dependency-name: org.springframework.cloud:spring-cloud-dependencies - # spring-cloud 2022 不支持 JDK 8 - versions: - - ">= 2022" - - dependency-name: com.alibaba.cloud:spring-cloud-alibaba-dependencies - # spring-cloud-alibaba 2022 不支持 JDK 8 - versions: - - ">= 2022" - - dependency-name: com.alibaba.cloud:spring-cloud-alibaba-dependencies - # spring-cloud-alibaba 2021.1 为命名错误 - versions: - - "= 2021.1" - - dependency-name: de.codecentric:spring-boot-admin-dependencies - # spring-boot-admin 3.0 不支持 JDK 8 - versions: - - ">= 3" - - dependency-name: de.codecentric:spring-boot-admin-starter-server - # spring-boot-admin 3.0 不支持 JDK 8 - versions: - - ">= 3" - - dependency-name: io.github.git-commit-id:git-commit-id-maven-plugin - # git-commit-id-maven-plugin 5.0 不支持 JDK 8 - versions: - - ">= 5" - - dependency-name: org.springframework.security:spring-security-oauth2-authorization-server - # spring-security-oauth2-authorization-server 1.0 不支持 JDK 8 - versions: - - ">= 1" - - - package-ecosystem: "maven" - directory: "/" - schedule: - interval: "daily" - # 目标分支 - target-branch: "sca-springboot3" - - - package-ecosystem: "maven" - directory: "/" - schedule: - interval: "daily" - # 目标分支 - target-branch: "sct-springboot3" diff --git a/README.md b/README.md index 8f4cc7af1..36b068977 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,6 @@ - 提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持 - 提供 lambda 、stream api 、webflux 的生产实践 - ## 文档视频 [ 🚀🚀🚀 低代码数据可视化](http://datav.avuejs.com) @@ -37,23 +36,16 @@ - master: java8 + springboot 2.7 + springcloud 2021 - jdk17: java17 + springboot 3.0 + springcloud 2022 -| 分支 | 说明 | -|-----------------|------------------------------------------------------------------| -| master | java8 + springboot 2.7 + springcloud 2021 | -| sca-springboot3 | java17 + springboot 3.0 + springcloud 2022 | -| sct-springboot3 | java17 + springboot 3.0 + springcloud 2022 | - - ### 核心依赖 -| 依赖 | 版本 | -| ---------------------- |------------| -| Spring Boot | 2.7.11 | -| Spring Cloud | 2021.0.6 | -| Spring Cloud Alibaba | 2021.0.5.0 | +| 依赖 | 版本 | +|-----------------------------|------------| +| Spring Boot | 2.7.12 | +| Spring Cloud | 2021.0.6 | +| Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.2 | -| Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.17 | +| Mybatis Plus | 3.5.3.1 | +| hutool | 5.8.17 | ### 模块说明 @@ -137,7 +129,6 @@ pig 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICEN ![](https://minio.pigx.vip/oss/1655474288.jpg) - ### 其他说明 1. 欢迎提交 [PR](https://dwz.cn/2KURd5Vf),注意对应提交对应 `dev` 分支 @@ -151,7 +142,8 @@ pig 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICEN 2. 如果使用 IntelliJ IDEA 开发,请安装自动格式化软件 spring-javaformat-intellij-idea-plugin - 3. 其他开发工具,请参考 spring-javaformat + 3. 其他开发工具,请参考 + spring-javaformat 说明,或`提交代码前`在项目根目录运行下列命令(需要开发者电脑支持`mvn`命令)进行代码格式化 ``` mvn spring-javaformat:apply @@ -159,5 +151,3 @@ pig 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICEN 2. 欢迎提交 [issue](https://gitee.com/log4j/pig/issues),请写清楚遇到问题的原因、开发环境、复显步骤。 - -3. 联系作者 pig4cloud@qq.com -- Gitee From 70204e0396dfa8628e7057f9a26548ee062c8967 Mon Sep 17 00:00:00 2001 From: Lht Date: Sat, 27 May 2023 09:52:21 +0800 Subject: [PATCH 093/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.19 --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 2afef2826..4bb911a6f 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -33,7 +33,7 @@ 1.0.5 2.0.2 2.3.5 - 5.8.18 + 5.8.19 2.7.4 1.8.4 -- Gitee From 41206aba9a2273ae8fda37bd5465532121137c87 Mon Sep 17 00:00:00 2001 From: Lht Date: Sat, 27 May 2023 09:53:44 +0800 Subject: [PATCH 094/105] :arrow_up: Upgrading dependencies. UP hutool 5.8.19 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 36b068977..82a83790f 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,11 @@ | 依赖 | 版本 | |-----------------------------|------------| | Spring Boot | 2.7.12 | -| Spring Cloud | 2021.0.6 | +| Spring Cloud | 2021.0.7 | | Spring Cloud Alibaba | 2021.0.5.0 | | Spring Authorization Server | 0.4.2 | | Mybatis Plus | 3.5.3.1 | -| hutool | 5.8.17 | +| hutool | 5.8.19 | ### 模块说明 -- Gitee From 3ca9d94ccec823656a4b5829462a8d7856acef32 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 27 May 2023 10:07:02 +0800 Subject: [PATCH 095/105] =?UTF-8?q?:rotating=5Flight:=20Removing=20linter?= =?UTF-8?q?=20warnings.=20=E9=94=99=E8=AF=AF=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....springframework.boot.autoconfigure.AutoConfiguration.imports | 1 - 1 file changed, 1 deletion(-) diff --git a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 81cc2017e..6fe4f1ad4 100644 --- a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -4,4 +4,3 @@ com.pig4cloud.pig.common.core.config.RedisTemplateConfiguration com.pig4cloud.pig.common.core.config.RestTemplateConfiguration com.pig4cloud.pig.common.core.util.SpringContextHolder com.pig4cloud.pig.common.core.config.WebMvcConfiguration -com.pig4cloud.pig.common.core.util.RedisUtils \ No newline at end of file -- Gitee From 94a3f32982ace2db0f4856e271adcec6f4e7af44 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 27 May 2023 10:07:02 +0800 Subject: [PATCH 096/105] =?UTF-8?q?:rotating=5Flight:=20Removing=20linter?= =?UTF-8?q?=20warnings.=20=E9=94=99=E8=AF=AF=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....springframework.boot.autoconfigure.AutoConfiguration.imports | 1 - 1 file changed, 1 deletion(-) diff --git a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 81cc2017e..6fe4f1ad4 100644 --- a/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/pig-common/pig-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -4,4 +4,3 @@ com.pig4cloud.pig.common.core.config.RedisTemplateConfiguration com.pig4cloud.pig.common.core.config.RestTemplateConfiguration com.pig4cloud.pig.common.core.util.SpringContextHolder com.pig4cloud.pig.common.core.config.WebMvcConfiguration -com.pig4cloud.pig.common.core.util.RedisUtils \ No newline at end of file -- Gitee From 177a52d0bcffbc84923ea4bdee4385210ac7efa6 Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 6 Jun 2023 13:13:38 +0800 Subject: [PATCH 097/105] =?UTF-8?q?:mute:=20=E5=88=A0=E9=99=A4login.ftl=20?= =?UTF-8?q?footer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pig-auth/src/main/resources/templates/ftl/login.ftl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pig-auth/src/main/resources/templates/ftl/login.ftl b/pig-auth/src/main/resources/templates/ftl/login.ftl index ede5e7ddc..8935f8e51 100755 --- a/pig-auth/src/main/resources/templates/ftl/login.ftl +++ b/pig-auth/src/main/resources/templates/ftl/login.ftl @@ -28,9 +28,5 @@ - -- Gitee From 78b83e70e8a31ae891c9c2faf475c044782f8a1b Mon Sep 17 00:00:00 2001 From: zouhhhhh <1179036329@qq.com> Date: Wed, 7 Jun 2023 23:34:25 +0800 Subject: [PATCH 098/105] =?UTF-8?q?:refactor:=20=E5=88=A0=E9=99=A4Delegati?= =?UTF-8?q?ngAuthenticationConverter=E4=B8=AD=E5=A4=9A=E4=BD=99=E7=9A=84Co?= =?UTF-8?q?nverter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pig/auth/config/AuthorizationServerConfiguration.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java index 8f1d0b8c2..d41ea5d99 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java @@ -117,9 +117,11 @@ public class AuthorizationServerConfiguration { private AuthenticationConverter accessTokenRequestConverter() { return new DelegatingAuthenticationConverter(Arrays.asList( new OAuth2ResourceOwnerPasswordAuthenticationConverter(), - new OAuth2ResourceOwnerSmsAuthenticationConverter(), new OAuth2RefreshTokenAuthenticationConverter(), - new OAuth2ClientCredentialsAuthenticationConverter(), - new OAuth2AuthorizationCodeAuthenticationConverter(), + new OAuth2ResourceOwnerSmsAuthenticationConverter(), + // OAuth2TokenEndpointFilter中构造的DelegatingAuthenticationConverter中已经创建了这三个,会重复调用 + // new OAuth2RefreshTokenAuthenticationConverter(), + // new OAuth2ClientCredentialsAuthenticationConverter(), + // new OAuth2AuthorizationCodeAuthenticationConverter(), new OAuth2AuthorizationCodeRequestAuthenticationConverter())); } -- Gitee From e3e712801a179636881d2da97796df855f4340ed Mon Sep 17 00:00:00 2001 From: GuoZhang Date: Mon, 12 Jun 2023 06:05:31 +0000 Subject: [PATCH 099/105] =?UTF-8?q?=E4=BF=AE=E6=94=B9spring.checkstyle.plu?= =?UTF-8?q?gin=E7=89=88=E6=9C=AC=E4=B8=8D=E4=B8=80=E8=87=B4=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: GuoZhang --- pig-common/pig-common-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index 2afef2826..09c96a12c 100644 --- a/pig-common/pig-common-bom/pom.xml +++ b/pig-common/pig-common-bom/pom.xml @@ -21,7 +21,7 @@ 1.8 1.8 4.9.9 - 0.0.34 + 0.0.38 1.2.83 1.6.9 2.2.0 -- Gitee From f472e701ac774f3ff20aaf24dddefcca90c726e0 Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 17 Jun 2023 17:14:59 +0800 Subject: [PATCH 100/105] =?UTF-8?q?:memo:=20Writing=20docs.=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=96=87=E6=A1=A3=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/config.yml | 5 +++++ .gitee/ISSUE_TEMPLATE/issue.yml | 29 +++++++++++++++++++++++++++++ README.md | 29 ++++++++++++----------------- 3 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 .gitee/ISSUE_TEMPLATE/config.yml create mode 100644 .gitee/ISSUE_TEMPLATE/issue.yml diff --git a/.gitee/ISSUE_TEMPLATE/config.yml b/.gitee/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..83f9d2ba4 --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false # 不允许用户创建空白 Issue +contact_links: + - name: 遇到问题先去看文档!谢谢! # 外部网站名称 + url: https://wiki.pig4cloud.com/ # 跳转的外部网站目标地址 + about: 文档可以解决你80%的疑惑 # 跳转外部网站的描述说明 diff --git a/.gitee/ISSUE_TEMPLATE/issue.yml b/.gitee/ISSUE_TEMPLATE/issue.yml new file mode 100644 index 000000000..fd407871f --- /dev/null +++ b/.gitee/ISSUE_TEMPLATE/issue.yml @@ -0,0 +1,29 @@ +name: 问题咨询 +body: + - type: dropdown + id: version + attributes: + label: PIG版本 + options: + - "3.6" + - "3.5" + - "3.4" + - "3.3" + - "3.2" + - "3.1" + - "3.0" + validations: + required: true + - type: checkboxes + attributes: + label: 是否修改了包名 + options: + - label: 是 + required: false + - type: textarea + id: desired-solution + attributes: + label: 问题描述 + description: 详细问题,提供相应截图和日志 + validations: + required: true diff --git a/README.md b/README.md index 82a83790f..53a504b1f 100644 --- a/README.md +++ b/README.md @@ -15,19 +15,19 @@ ## 文档视频 -[ 🚀🚀🚀 低代码数据可视化](http://datav.avuejs.com) +[ 🚀🚀🚀 低代码数据可视化](http://datav.pig4cloud.com) -[ 配套文档 wiki.pigx.vip](https://wiki.pigx.vip) +[ 配套文档 wiki.pig4cloud.com](https://wiki.pig4cloud.com) -[ 配套视频 tv.pigx.vip](https://www.bilibili.com/video/BV12t411B7e9) +[ 配套视频 tv.pig4cloud.com](https://www.bilibili.com/video/BV12t411B7e9) -[PIGX 在线体验 pigx.pigx.vip](http://pigx.pigx.vip) +[PIGX 在线体验 pigx.pig4cloud.com](http://pigx.pig4cloud.com) -[产品白皮书 paper.pigx.vip](https://paper.pigx.vip) +[产品白皮书 paper.pig4cloud.com](https://paper.pig4cloud.com) ## 微信群 [禁广告] -![](https://minio.pigx.vip/oss/1648184189.png) +![](https://minio.pigx.top/oss/1648184189.png) ## 快速开始 @@ -80,15 +80,10 @@ pig ### 本地开发 运行 -pig 提供了详细的[部署文档 wiki.pigx.vip](https://www.yuque.com/pig4cloud/pig/vsdox9),包括开发环境安装、服务端代码运行、前端代码运行等。 +pig 提供了详细的[部署文档 wiki.pig4cloud.com](https://www.yuque.com/pig4cloud/pig/vsdox9),包括开发环境安装、服务端代码运行、前端代码运行等。 请务必**完全按照**文档部署运行章节 进行操作,减少踩坑弯路!! -### 定制自己微服务 - -[PIG DIY](https://pig4cloud.com/#/common/diy) - -[PIG ARCHETYPE](https://pig4cloud.com/#/common/archetype) ### Docker 运行 @@ -111,12 +106,12 @@ cnpm install && cnpm run build:docker && cd docker && docker-compose up -d - - + + - - + +
@@ -127,7 +122,7 @@ cnpm install && cnpm run build:docker && cd docker && docker-compose up -d pig 开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICENSE-2.0.html)。 允许商业使用,但务必保留类作者、Copyright 信息。 -![](https://minio.pigx.vip/oss/1655474288.jpg) +![](https://minio.pigx.top/oss/1655474288.jpg) ### 其他说明 -- Gitee From 0f4ca191b290ae9b44c0a1116396a1be9722e40d Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 17 Jun 2023 18:49:10 +0800 Subject: [PATCH 101/105] =?UTF-8?q?:art:=20Improving=20structure=20/=20for?= =?UTF-8?q?mat=20of=20the=20code.=20=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthorizationServerConfiguration.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java index d41ea5d99..a9c01e433 100755 --- a/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java +++ b/pig-auth/src/main/java/com/pig4cloud/pig/auth/config/AuthorizationServerConfiguration.java @@ -51,7 +51,7 @@ import java.util.Arrays; /** * @author lengleng * @date 2022/5/27 - * + *

* 认证服务器配置 */ @Configuration @@ -115,22 +115,17 @@ public class AuthorizationServerConfiguration { * @return DelegatingAuthenticationConverter */ private AuthenticationConverter accessTokenRequestConverter() { - return new DelegatingAuthenticationConverter(Arrays.asList( - new OAuth2ResourceOwnerPasswordAuthenticationConverter(), - new OAuth2ResourceOwnerSmsAuthenticationConverter(), - // OAuth2TokenEndpointFilter中构造的DelegatingAuthenticationConverter中已经创建了这三个,会重复调用 - // new OAuth2RefreshTokenAuthenticationConverter(), - // new OAuth2ClientCredentialsAuthenticationConverter(), - // new OAuth2AuthorizationCodeAuthenticationConverter(), - new OAuth2AuthorizationCodeRequestAuthenticationConverter())); + return new DelegatingAuthenticationConverter( + Arrays.asList(new OAuth2ResourceOwnerPasswordAuthenticationConverter(), + new OAuth2ResourceOwnerSmsAuthenticationConverter(), + new OAuth2AuthorizationCodeRequestAuthenticationConverter())); } /** * 注入授权模式实现提供方 - * + *

* 1. 密码模式
* 2. 短信登录
- * */ @SuppressWarnings("unchecked") private void addCustomOAuth2GrantAuthenticationProvider(HttpSecurity http) { -- Gitee From 46b0e0aeb22c8af21bc9b7a81c07e4cb12bd1a6a Mon Sep 17 00:00:00 2001 From: lbw Date: Sat, 17 Jun 2023 18:53:19 +0800 Subject: [PATCH 102/105] =?UTF-8?q?:memo:=20Writing=20docs.=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0issue=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitee/ISSUE_TEMPLATE/issue.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitee/ISSUE_TEMPLATE/issue.yml b/.gitee/ISSUE_TEMPLATE/issue.yml index fd407871f..a122b21b8 100644 --- a/.gitee/ISSUE_TEMPLATE/issue.yml +++ b/.gitee/ISSUE_TEMPLATE/issue.yml @@ -1,4 +1,5 @@ name: 问题咨询 +description: "![扫码加入微信群](https://minio.pigx.top/oss/1648184189.png)" body: - type: dropdown id: version -- Gitee From d0cddfd89c447b0fe20a11b401c9dc3aa790e2bf Mon Sep 17 00:00:00 2001 From: lbw Date: Sun, 18 Jun 2023 08:54:02 +0800 Subject: [PATCH 103/105] =?UTF-8?q?:memo:=20Writing=20docs.=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0issue=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53a504b1f..3accd23ca 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ [ 配套视频 tv.pig4cloud.com](https://www.bilibili.com/video/BV12t411B7e9) -[PIGX 在线体验 pigx.pig4cloud.com](http://pigx.pig4cloud.com) +[PIGX 在线体验 pigx.pigx.top](http://pigx.pigx.top) [产品白皮书 paper.pig4cloud.com](https://paper.pig4cloud.com) -- Gitee From e427126bcc4199f7ac95090b1287c82ef7ba0f4b Mon Sep 17 00:00:00 2001 From: knight Date: Wed, 26 Jul 2023 11:03:37 +0800 Subject: [PATCH 104/105] =?UTF-8?q?:recycle:=20PigSecurityInnerAspect?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=89=8D=E7=BD=AE=E9=80=9A=E7=9F=A5=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3=E7=8E=AF=E7=BB=95=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/component/PigSecurityInnerAspect.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java index 6d55f61eb..42f2ff1f1 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java @@ -16,17 +16,15 @@ package com.pig4cloud.pig.common.security.component; -import cn.hutool.core.util.StrUtil; import com.pig4cloud.pig.common.core.constant.SecurityConstants; import com.pig4cloud.pig.common.security.annotation.Inner; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; import org.springframework.core.Ordered; -import org.springframework.core.annotation.AnnotationUtils; import org.springframework.security.access.AccessDeniedException; import javax.servlet.http.HttpServletRequest; @@ -45,8 +43,8 @@ public class PigSecurityInnerAspect implements Ordered { private final HttpServletRequest request; @SneakyThrows - @Around("@within(inner) || @annotation(inner)") - public Object around(ProceedingJoinPoint point, Inner inner) { + @Before("@within(inner) || @annotation(inner)") + public void around(JoinPoint point, Inner inner) { // 实际注入的inner实体由表达式后一个注解决定,即是方法上的@Inner注解实体,若方法上无@Inner注解,则获取类上的 // 这段代码没有意义,拦截的就是@Inner注解,怎么会为null呢 // if (inner == null) { @@ -58,7 +56,6 @@ public class PigSecurityInnerAspect implements Ordered { log.warn("访问接口 {} 没有权限", point.getSignature().getName()); throw new AccessDeniedException("Access is denied"); } - return point.proceed(); } @Override -- Gitee From 29840e449fa2964dc8169662b82b1778f05fee39 Mon Sep 17 00:00:00 2001 From: zhangxinjie Date: Fri, 28 Jul 2023 15:06:19 +0800 Subject: [PATCH 105/105] =?UTF-8?q?@Inner=E5=9C=A8=E7=B1=BB=E4=B8=8A?= =?UTF-8?q?=E6=97=B6=EF=BC=8Cinner=E4=B8=BA=E7=A9=BA=E3=80=82=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E8=8E=B7=E5=8F=96=E7=B1=BB=E4=B8=8A=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/component/PigSecurityInnerAspect.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java index 42f2ff1f1..9a63bec94 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java @@ -25,6 +25,7 @@ import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.core.Ordered; +import org.springframework.core.annotation.AnnotationUtils; import org.springframework.security.access.AccessDeniedException; import javax.servlet.http.HttpServletRequest; @@ -32,7 +33,7 @@ import javax.servlet.http.HttpServletRequest; /** * @author lengleng * @date 2022-06-04 - * + *

* 服务间接口不鉴权处理逻辑 */ @Slf4j @@ -46,11 +47,10 @@ public class PigSecurityInnerAspect implements Ordered { @Before("@within(inner) || @annotation(inner)") public void around(JoinPoint point, Inner inner) { // 实际注入的inner实体由表达式后一个注解决定,即是方法上的@Inner注解实体,若方法上无@Inner注解,则获取类上的 - // 这段代码没有意义,拦截的就是@Inner注解,怎么会为null呢 - // if (inner == null) { - // Class clazz = point.getTarget().getClass(); - // inner = AnnotationUtils.findAnnotation(clazz, Inner.class); - // } + if (inner == null) { + Class clazz = point.getTarget().getClass(); + inner = AnnotationUtils.findAnnotation(clazz, Inner.class); + } String header = request.getHeader(SecurityConstants.FROM); if (inner.value() && !SecurityConstants.FROM_IN.equals(header)) { log.warn("访问接口 {} 没有权限", point.getSignature().getName()); -- Gitee