diff --git a/README.md b/README.md index 412e642cb226a2f6498fbd28a3cac59688426a30..eab12a5ad1460ea9a9fa9e82a452fe72e16f3a85 100644 --- a/README.md +++ b/README.md @@ -30,19 +30,29 @@ ![](https://minio.pigx.vip/oss/1648184189.png) - - ## 快速开始 +### 分支说明 + +- 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.6 | +| Spring Boot | 2.7.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/docker-compose.yml b/docker-compose.yml index be4193263a711c9f496c142fc9e4faa3f257b1e8..3380751d680e7175bec8baaefb9d19a69a152e0b 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 diff --git a/pig-auth/pom.xml b/pig-auth/pom.xml index 1e5e2da47c9c7087d584f1b5064692ad4e8d1e1c..bb9dc812c55be3fab02addbed58518dc9b084e15 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-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 162babd2133ea5fbf0800244d2efd67f9830ff80..3466b9ff6b08c8a8437ef48f127deae21bb2d8a9 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); diff --git a/pig-common/pig-common-bom/pom.xml b/pig-common/pig-common-bom/pom.xml index b82dd87b97c45265d40ae5b8ea2812df61b2c80f..9ebf9101343d84dd01fcf28fc9ade4312935eedf 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 @@ -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 diff --git a/pig-common/pig-common-core/pom.xml b/pig-common/pig-common-core/pom.xml index d8457f55e26b730bc8843779c190d301708dc84a..16b84c5eda6155b8d53bc305fdb2124af5bf01f6 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 0af20a6ea1fc03a7a555d4224501e7e811b89969..ee227c821d42e088f59e9343c52c266cec3f0537 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 26451d25c0db32e4ffd3ef2f8711a11eab414022..4026a01ac268ded4d33c9afb749445e40dfeef07 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 1a12427d4b4395c3955038932bd9acc2f701a900..0ab97cbff857ef984b7c93764880a6c37c019893 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 83acf4c35bb9551b3adaf24b7cf40db93f52b3b4..aa1c20467bde4404819a22d10736bd9a72d14a22 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 84c3a56f92980931a8187e4da4a6e0743b8276df..dd7d6b34bf9c52873183fe2d2eb5ca90214af4bb 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 6b80cb4ae6d8ec578448bea1e596425c856aa0f6..09a4597681cdf4f6f52460179b1383f45ab3e57a 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 469aa634a797c258d6575b72f5e0b033bf4bc326..ee8f4faa13d4575eb4bcbc5e2d615339d7266674 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 854dad1981850d04bf285ecc1bca0f6222826aa1..f585a4c36fe795afb418e6c0d229ceceeded7d7c 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 495cfe2b0d07adc277bafd4dd7a0e7eba46a070d..387742b96999412b10e00114ff41f07c417a151d 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 8c24c931cf5d05a9b4ef2a338edaf4ff1801c95a..60616c984bed5bb0b0776cbdd93dd832742fba0c 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 7f625d7a15327f8b40d3fceb35154ea10574ca78..6ce35adfc9a4c3d8bf856a80612518e3ba8fba22 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 d5309be05a79bdcb18d4d4dbe23150b2e4a4b813..45e0284e917d750e72041ea4833616f9d40f401c 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-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java new file mode 100644 index 0000000000000000000000000000000000000000..72a05665d637ec4664b03d736cc545f622b5eaa2 --- /dev/null +++ b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/HistoryService.java @@ -0,0 +1,88 @@ +package com.alibaba.nacos.config.server.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; + +/** + * @author aeizzz + */ +@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/server/service/package-info.java b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..d3c747a1d663086d25cde4b3cf7852a8b82368ff --- /dev/null +++ b/pig-register/src/main/java/com/alibaba/nacos/config/server/service/package-info.java @@ -0,0 +1,4 @@ +/** + * 处理再oracle数据库下空置的判断 + */ +package com.alibaba.nacos.config.server.service; diff --git a/pig-upms/pig-upms-api/pom.xml b/pig-upms/pig-upms-api/pom.xml index 03c66e106ded4f295e16a1854dc0a86d6bb88054..68520c51a91dd9b0633705d1a3a27a46a9bd6ef7 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 a3652ff2be98ce35a484cb7b9b39d82b199f0cf9..2aac59cc35e637f5cbe8bd4b20a40d0db54534c9 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 a5994580b570bb1bf709237068120017e9c2d207..1b9cd02eb1d35c9913bd07497de9d34fbb8ec598 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 d5cadd48517d5efd637a6671357cba5657611d5f..aa65394127e063c13910f8f547bf65302e1c6658 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 e643f3cf14f99ecd755f2538b1ed49c234d0ecb4..4145a511db9617029673803c21d38ed5cb2d5acc 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 86f4321d097e7009abe519cfa41bca44c444ccba..0840d1616760c4a611eaaeb89ecb9d4d22e9b71e 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 098b2cdaa043ec2adff906a12e51cadd321678e6..b3553c3e0fba1e0d9c63dcde52d1afbaa1c4c496 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 7366fa283977820fd9cbc8dc7731c7b8d8278bfd..92ae2b616dbcd06991659261079837a1bfcf4e1f 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 2ed3732272416d541c24675c5a2fe67a6848259d..c21f83b41025117191fdcb9e90fff8fbf76adebd 100755 --- a/pom.xml +++ b/pom.xml @@ -22,12 +22,12 @@ com.pig4cloud pig ${project.artifactId} - 3.6.4 + 3.6.5 pom https://www.pig4cloud.com - 2.7.6 + 2.7.7 2021.0.5 2021.0.4.0 UTF-8 @@ -51,7 +51,7 @@ username password 4.9.9 - 0.0.34 + 0.0.35