diff --git a/pom.xml b/pom.xml
index 48e9060a..39094e9e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,8 +71,6 @@
dev
127.0.0.1:8848
- nacos
- nacos
DEFAULT_GROUP
DEFAULT_GROUP
127.0.0.1:4560
@@ -87,8 +85,6 @@
prod
127.0.0.1:8848
- nacos
- nacos
DEFAULT_GROUP
DEFAULT_GROUP
127.0.0.1:4560
diff --git a/ruoyi-auth/src/main/resources/application.yml b/ruoyi-auth/src/main/resources/application.yml
index f1668017..24f58103 100644
--- a/ruoyi-auth/src/main/resources/application.yml
+++ b/ruoyi-auth/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-common/ruoyi-common-dubbo/src/main/resources/common-dubbo.yml b/ruoyi-common/ruoyi-common-dubbo/src/main/resources/common-dubbo.yml
index 45324774..fdc21f6a 100644
--- a/ruoyi-common/ruoyi-common-dubbo/src/main/resources/common-dubbo.yml
+++ b/ruoyi-common/ruoyi-common-dubbo/src/main/resources/common-dubbo.yml
@@ -15,8 +15,6 @@ dubbo:
registry:
address: nacos://${spring.cloud.nacos.server-addr}
group: DUBBO_GROUP
- username: ${spring.cloud.nacos.username}
- password: ${spring.cloud.nacos.password}
parameters:
namespace: ${spring.profiles.active}
# 消费者相关配置
diff --git a/ruoyi-example/ruoyi-demo/src/main/resources/application.yml b/ruoyi-example/ruoyi-demo/src/main/resources/application.yml
index 1d64ba28..d35ec413 100644
--- a/ruoyi-example/ruoyi-demo/src/main/resources/application.yml
+++ b/ruoyi-example/ruoyi-demo/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-example/ruoyi-stream-mq/src/main/resources/application.yml b/ruoyi-example/ruoyi-stream-mq/src/main/resources/application.yml
index 85577bf8..35b6d1f6 100644
--- a/ruoyi-example/ruoyi-stream-mq/src/main/resources/application.yml
+++ b/ruoyi-example/ruoyi-stream-mq/src/main/resources/application.yml
@@ -102,8 +102,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-gateway/src/main/resources/application.yml b/ruoyi-gateway/src/main/resources/application.yml
index 29d35f34..08bd112a 100644
--- a/ruoyi-gateway/src/main/resources/application.yml
+++ b/ruoyi-gateway/src/main/resources/application.yml
@@ -27,8 +27,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/application.yml b/ruoyi-modules/ruoyi-gen/src/main/resources/application.yml
index ab1a950f..a6761d83 100644
--- a/ruoyi-modules/ruoyi-gen/src/main/resources/application.yml
+++ b/ruoyi-modules/ruoyi-gen/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-modules/ruoyi-job/src/main/resources/application.yml b/ruoyi-modules/ruoyi-job/src/main/resources/application.yml
index 6110143a..5d5b2d77 100644
--- a/ruoyi-modules/ruoyi-job/src/main/resources/application.yml
+++ b/ruoyi-modules/ruoyi-job/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-modules/ruoyi-resource/src/main/resources/application.yml b/ruoyi-modules/ruoyi-resource/src/main/resources/application.yml
index 0e78f7c7..c86ad8ba 100644
--- a/ruoyi-modules/ruoyi-resource/src/main/resources/application.yml
+++ b/ruoyi-modules/ruoyi-resource/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml b/ruoyi-modules/ruoyi-system/src/main/resources/application.yml
index 957ca72e..e2ec8528 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/application.yml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-visual/ruoyi-monitor/src/main/resources/application.yml b/ruoyi-visual/ruoyi-monitor/src/main/resources/application.yml
index 72df1f87..fe8b3573 100644
--- a/ruoyi-visual/ruoyi-monitor/src/main/resources/application.yml
+++ b/ruoyi-visual/ruoyi-monitor/src/main/resources/application.yml
@@ -25,8 +25,6 @@ spring:
# 配置组
group: @nacos.config.group@
namespace: ${spring.profiles.active}
- username: @nacos.username@
- password: @nacos.password@
config:
import:
- optional:nacos:application-common.yml
diff --git a/ruoyi-visual/ruoyi-nacos/pom.xml b/ruoyi-visual/ruoyi-nacos/pom.xml
index 9b1e65b5..a1ae716c 100644
--- a/ruoyi-visual/ruoyi-nacos/pom.xml
+++ b/ruoyi-visual/ruoyi-nacos/pom.xml
@@ -27,7 +27,7 @@
jar
- 2.3.0
+ 2.2.1
2.7.18
2.7.11
@@ -76,13 +76,6 @@
system
${nacos.lib.path}/nacos-config-${nacos.version}.jar
-
- com.alibaba.nacos
- nacos-persistence
- ${nacos.version}
- system
- ${nacos.lib.path}/nacos-persistence-${nacos.version}.jar
-
com.alibaba.nacos
nacos-consistency
@@ -92,17 +85,10 @@
com.alibaba.nacos
- nacos-control-plugin
+ nacos-contrl-plugin
${nacos.version}
system
- ${nacos.lib.path}/nacos-control-plugin-${nacos.version}.jar
-
-
- com.alibaba.nacos
- nacos-config-plugin
- ${nacos.version}
- system
- ${nacos.lib.path}/nacos-config-plugin-${nacos.version}.jar
+ ${nacos.lib.path}/nacos-contrl-plugin-${nacos.version}.jar
com.alibaba.nacos
@@ -127,24 +113,10 @@
com.alibaba.nacos
- default-auth-plugin
+ nacos-plugin-default-impl
${nacos.version}
system
- ${nacos.lib.path}/default-auth-plugin-${nacos.version}.jar
-
-
- com.alibaba.nacos
- default-control-plugin
- ${nacos.version}
- system
- ${nacos.lib.path}/default-control-plugin-${nacos.version}.jar
-
-
- com.alibaba.nacos
- nacos-trace-plugin
- ${nacos.version}
- system
- ${nacos.lib.path}/nacos-trace-plugin-${nacos.version}.jar
+ ${nacos.lib.path}/nacos-plugin-default-impl-${nacos.version}.jar
com.alibaba.nacos
@@ -160,20 +132,30 @@
system
${nacos.lib.path}/nacos-sys-${nacos.version}.jar
+
+ com.alibaba.nacos
+ nacos-custom-environment-plugin
+ ${nacos.version}
+
com.alibaba.nacos
nacos-datasource-plugin
${nacos.version}
- system
- ${nacos.lib.path}/nacos-datasource-plugin-${nacos.version}.jar
com.alibaba.nacos
nacos-encryption-plugin
+ ${nacos.version}
+
+
+ com.alibaba.nacos
+ nacos-trace-plugin
+ ${nacos.version}
com.alibaba.nacos
nacos-common
+ ${nacos.version}
com.alibaba.nacos
@@ -245,6 +227,10 @@
com.alipay.sofa
rpc-grpc-impl
+
+ org.codehaus.jackson
+ jackson-core-asl
+
io.jsonwebtoken
jjwt-api
@@ -262,7 +248,6 @@
com.google.guava
guava
- 31.1-jre
org.javatuples
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/Nacos.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/Nacos.java
index 467cc6e9..61a6f81a 100644
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/Nacos.java
+++ b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/Nacos.java
@@ -16,14 +16,9 @@
package com.alibaba.nacos;
-import com.alibaba.nacos.sys.filter.NacosTypeExcludeFilter;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.AutoConfigurationExcludeFilter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.context.TypeExcludeFilter;
import org.springframework.boot.web.servlet.ServletComponentScan;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.FilterType;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleConfig.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleConfig.java
index 5062d495..2afdaaef 100644
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleConfig.java
+++ b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleConfig.java
@@ -19,7 +19,6 @@ package com.alibaba.nacos.console.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.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
@@ -47,9 +46,6 @@ public class ConsoleConfig {
@Autowired
private ControllerMethodsCache methodsCache;
- @Value("${nacos.console.ui.enabled:true}")
- private boolean consoleUiEnabled;
-
/**
* Init.
*/
@@ -83,8 +79,4 @@ public class ConsoleConfig {
public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() {
return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(ZoneId.systemDefault().toString());
}
-
- public boolean isConsoleUiEnabled() {
- return consoleUiEnabled;
- }
}
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleModuleStateBuilder.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleModuleStateBuilder.java
deleted file mode 100644
index 3ab7a6ae..00000000
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/config/ConsoleModuleStateBuilder.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 1999-2023 Alibaba Group Holding Ltd.
- *
- * 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.alibaba.nacos.console.config;
-
-import com.alibaba.nacos.sys.module.ModuleState;
-import com.alibaba.nacos.sys.module.ModuleStateBuilder;
-import com.alibaba.nacos.sys.utils.ApplicationUtils;
-
-/**
- * Console module state builder.
- *
- * @author xiweng.yy
- */
-public class ConsoleModuleStateBuilder implements ModuleStateBuilder {
-
- public static final String CONSOLE_MODULE = "console";
-
- private static final String CONSOLE_UI_ENABLED = "console_ui_enabled";
-
- @Override
- public ModuleState build() {
- ModuleState result = new ModuleState(CONSOLE_MODULE);
- try {
- ConsoleConfig consoleConfig = ApplicationUtils.getBean(ConsoleConfig.class);
- result.newState(CONSOLE_UI_ENABLED, consoleConfig.isConsoleUiEnabled());
- } catch (Exception ignored) {
- }
- return result;
- }
-}
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/HealthController.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/HealthController.java
index fd191023..f5b0e981 100644
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/HealthController.java
+++ b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/HealthController.java
@@ -16,10 +16,11 @@
package com.alibaba.nacos.console.controller;
-import com.alibaba.nacos.console.paramcheck.ConsoleDefaultHttpParamExtractor;
-import com.alibaba.nacos.core.cluster.health.ModuleHealthCheckerHolder;
-import com.alibaba.nacos.core.cluster.health.ReadinessResult;
-import com.alibaba.nacos.core.paramcheck.ExtractorManager;
+import com.alibaba.nacos.config.server.service.repository.ConfigInfoPersistService;
+import com.alibaba.nacos.naming.controllers.OperatorController;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
@@ -35,9 +36,20 @@ import javax.servlet.http.HttpServletRequest;
*/
@RestController("consoleHealth")
@RequestMapping("/v1/console/health")
-@ExtractorManager.Extractor(httpExtractor = ConsoleDefaultHttpParamExtractor.class)
public class HealthController {
+ private static final Logger LOGGER = LoggerFactory.getLogger(HealthController.class);
+
+ private final ConfigInfoPersistService configInfoPersistService;
+
+ private final OperatorController apiCommands;
+
+ @Autowired
+ public HealthController(ConfigInfoPersistService configInfoPersistService, OperatorController apiCommands) {
+ this.configInfoPersistService = configInfoPersistService;
+ this.apiCommands = apiCommands;
+ }
+
/**
* Whether the Nacos is in broken states or not, and cannot recover except by being restarted.
*
@@ -57,11 +69,42 @@ public class HealthController {
*/
@GetMapping("/readiness")
public ResponseEntity readiness(HttpServletRequest request) {
- ReadinessResult result = ModuleHealthCheckerHolder.getInstance().checkReadiness();
- if (result.isSuccess()) {
+ boolean isConfigReadiness = isConfigReadiness();
+ boolean isNamingReadiness = isNamingReadiness(request);
+
+ if (isConfigReadiness && isNamingReadiness) {
return ResponseEntity.ok().body("OK");
}
- return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(result.getResultMessage());
+
+ if (!isConfigReadiness && !isNamingReadiness) {
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Config and Naming are not in readiness");
+ }
+
+ if (!isConfigReadiness) {
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Config is not in readiness");
+ }
+
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Naming is not in readiness");
}
+ private boolean isConfigReadiness() {
+ // check db
+ try {
+ configInfoPersistService.configInfoCount("");
+ return true;
+ } catch (Exception e) {
+ LOGGER.error("Config health check fail.", e);
+ }
+ return false;
+ }
+
+ private boolean isNamingReadiness(HttpServletRequest request) {
+ try {
+ apiCommands.metrics(request);
+ return true;
+ } catch (Exception e) {
+ LOGGER.error("Naming health check fail.", e);
+ }
+ return false;
+ }
}
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/NamespaceController.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/NamespaceController.java
index a02ca070..ffe1e31d 100644
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/NamespaceController.java
+++ b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/NamespaceController.java
@@ -21,11 +21,10 @@ import com.alibaba.nacos.auth.annotation.Secured;
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.model.RestResultUtils;
import com.alibaba.nacos.common.utils.StringUtils;
-import com.alibaba.nacos.console.paramcheck.ConsoleDefaultHttpParamExtractor;
-import com.alibaba.nacos.core.namespace.repository.NamespacePersistService;
-import com.alibaba.nacos.core.namespace.model.Namespace;
-import com.alibaba.nacos.core.paramcheck.ExtractorManager;
-import com.alibaba.nacos.core.service.NamespaceOperationService;
+import com.alibaba.nacos.config.server.service.repository.CommonPersistService;
+import com.alibaba.nacos.console.model.Namespace;
+import com.alibaba.nacos.console.model.NamespaceAllInfo;
+import com.alibaba.nacos.console.service.NamespaceOperationService;
import com.alibaba.nacos.plugin.auth.constant.ActionTypes;
import com.alibaba.nacos.plugin.auth.impl.constant.AuthConstants;
import org.springframework.beans.factory.annotation.Autowired;
@@ -48,18 +47,15 @@ import java.util.regex.Pattern;
*/
@RestController
@RequestMapping("/v1/console/namespaces")
-@ExtractorManager.Extractor(httpExtractor = ConsoleDefaultHttpParamExtractor.class)
public class NamespaceController {
@Autowired
- private NamespacePersistService namespacePersistService;
+ private CommonPersistService commonPersistService;
@Autowired
private NamespaceOperationService namespaceOperationService;
private final Pattern namespaceIdCheckPattern = Pattern.compile("^[\\w-]+");
-
- private final Pattern namespaceNameCheckPattern = Pattern.compile("^[^@#$%^&*]+$");
private static final int NAMESPACE_ID_MAX_LENGTH = 128;
@@ -80,7 +76,7 @@ public class NamespaceController {
* @return namespace all info
*/
@GetMapping(params = "show=all")
- public Namespace getNamespace(@RequestParam("namespaceId") String namespaceId) throws NacosException {
+ public NamespaceAllInfo getNamespace(@RequestParam("namespaceId") String namespaceId) throws NacosException {
return namespaceOperationService.getNamespace(namespaceId);
}
@@ -106,14 +102,6 @@ public class NamespaceController {
if (namespaceId.length() > NAMESPACE_ID_MAX_LENGTH) {
return false;
}
- // check unique
- if (namespacePersistService.tenantInfoCountByTenantId(namespaceId) > 0) {
- return false;
- }
- }
- // contains illegal chars
- if (!namespaceNameCheckPattern.matcher(namespaceName).matches()) {
- return false;
}
try {
return namespaceOperationService.createNamespace(namespaceId, namespaceName, namespaceDesc);
@@ -133,7 +121,7 @@ public class NamespaceController {
if (StringUtils.isBlank(namespaceId)) {
return false;
}
- return (namespacePersistService.tenantInfoCountByTenantId(namespaceId) > 0);
+ return (commonPersistService.tenantInfoCountByTenantId(namespaceId) > 0);
}
/**
@@ -149,10 +137,6 @@ public class NamespaceController {
public Boolean editNamespace(@RequestParam("namespace") String namespace,
@RequestParam("namespaceShowName") String namespaceShowName,
@RequestParam(value = "namespaceDesc", required = false) String namespaceDesc) {
- // contains illegal chars
- if (!namespaceNameCheckPattern.matcher(namespaceShowName).matches()) {
- return false;
- }
return namespaceOperationService.editNamespace(namespace, namespaceShowName, namespaceDesc);
}
diff --git a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
index c0b7c0cf..aa5ead4b 100644
--- a/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
+++ b/ruoyi-visual/ruoyi-nacos/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
@@ -16,20 +16,13 @@
package com.alibaba.nacos.console.controller;
-import com.alibaba.nacos.common.model.RestResult;
-import com.alibaba.nacos.common.model.RestResultUtils;
-import com.alibaba.nacos.console.paramcheck.ConsoleDefaultHttpParamExtractor;
-import com.alibaba.nacos.core.paramcheck.ExtractorManager;
+import com.alibaba.nacos.common.utils.VersionUtils;
import com.alibaba.nacos.sys.env.EnvUtil;
-import com.alibaba.nacos.sys.module.ModuleState;
-import com.alibaba.nacos.sys.module.ModuleStateHolder;
-import com.alibaba.nacos.sys.utils.DiskUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.io.File;
import java.util.HashMap;
import java.util.Map;
@@ -40,13 +33,8 @@ import java.util.Map;
*/
@RestController
@RequestMapping("/v1/console/server")
-@ExtractorManager.Extractor(httpExtractor = ConsoleDefaultHttpParamExtractor.class)
public class ServerStateController {
- private static final String ANNOUNCEMENT_FILE = "announcement.conf";
-
- private static final String GUIDE_FILE = "console-guide.conf";
-
/**
* Get server state of current server.
*
@@ -55,29 +43,13 @@ public class ServerStateController {
@GetMapping("/state")
public ResponseEntity