diff --git a/README.md b/README.md
index 412e642cb226a2f6498fbd28a3cac59688426a30..eab12a5ad1460ea9a9fa9e82a452fe72e16f3a85 100644
--- a/README.md
+++ b/README.md
@@ -30,19 +30,29 @@

-
-
## 快速开始
+### 分支说明
+
+- 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