add application scope validation
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
index c5e2351..ac350c5 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/AccessesController.java
@@ -16,8 +16,10 @@
*/
package org.apache.dubbo.admin.controller;
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.ConditionRouteDTO;
+import org.apache.dubbo.admin.service.ProviderService;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.commons.lang3.StringUtils;
@@ -38,10 +40,12 @@
private static final Logger logger = LoggerFactory.getLogger(AccessesController.class);
private final RouteService routeService;
+ private final ProviderService providerService;
@Autowired
- public AccessesController(RouteService routeService) {
+ public AccessesController(RouteService routeService, ProviderService providerService) {
this.routeService = routeService;
+ this.providerService = providerService;
}
@RequestMapping(method = RequestMethod.GET)
@@ -84,6 +88,10 @@
if (StringUtils.isBlank(accessDTO.getService()) && StringUtils.isBlank(accessDTO.getApplication())) {
throw new ParamValidationException("Either Service or application is required.");
}
+ String application = accessDTO.getApplication();
+ if (StringUtils.isNotEmpty(application) && this.providerService.findVersionInApplication(application).equals("2.6")) {
+ throw new VersionValidationException("dubbo 2.6 does not support application scope blackwhite list config");
+ }
if (accessDTO.getBlacklist() == null && accessDTO.getWhitelist() == null) {
throw new ParamValidationException("One of Blacklist/Whitelist is required.");
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
index 816e6b9..a803527 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/LoadBalanceController.java
@@ -20,9 +20,11 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.model.dto.BalancingDTO;
import org.apache.dubbo.admin.service.OverrideService;
+import org.apache.dubbo.admin.service.ProviderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@@ -36,10 +38,12 @@
public class LoadBalanceController {
private final OverrideService overrideService;
+ private final ProviderService providerService;
@Autowired
- public LoadBalanceController(OverrideService overrideService) {
+ public LoadBalanceController(OverrideService overrideService, ProviderService providerService) {
this.overrideService = overrideService;
+ this.providerService = providerService;
}
@RequestMapping(method = RequestMethod.POST)
@@ -48,16 +52,11 @@
if (StringUtils.isBlank(balancingDTO.getService()) && StringUtils.isBlank(balancingDTO.getApplication())) {
throw new ParamValidationException("Either Service or application is required.");
}
+ String application = balancingDTO.getApplication();
+ if (StringUtils.isNotEmpty(application) && this.providerService.findVersionInApplication(application).equals("2.6")) {
+ throw new VersionValidationException("dubbo 2.6 does not support application scope load balancing config");
+ }
overrideService.saveBalance(balancingDTO);
-// String serviceName = balancingDTO.getService();
-// if (StringUtils.isEmpty(serviceName)) {
-// throw new ParamValidationException("serviceName is Empty!");
-// }
-// LoadBalance loadBalance = new LoadBalance();
-// loadBalance.setService(serviceName);
-// loadBalance.setMethod(formatMethodName(balancingDTO.getMethodName()));
-// loadBalance.setStrategy(balancingDTO.getStrategy());
-// overrideService.saveOverride(OverrideUtils.loadBalanceToOverride(loadBalance));
return true;
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
index 62c4ce4..2146a01 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/controller/WeightController.java
@@ -20,6 +20,7 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.dubbo.admin.common.exception.ParamValidationException;
import org.apache.dubbo.admin.common.exception.ResourceNotFoundException;
+import org.apache.dubbo.admin.common.exception.VersionValidationException;
import org.apache.dubbo.admin.common.util.Constants;
import org.apache.dubbo.admin.common.util.ConvertUtil;
import org.apache.dubbo.admin.model.dto.AccessDTO;
@@ -28,6 +29,7 @@
import org.apache.dubbo.admin.model.domain.Override;
import org.apache.dubbo.admin.model.domain.Weight;
import org.apache.dubbo.admin.common.util.OverrideUtils;
+import org.apache.dubbo.admin.service.ProviderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@@ -40,10 +42,12 @@
public class WeightController {
private final OverrideService overrideService;
+ private final ProviderService providerService;
@Autowired
- public WeightController(OverrideService overrideService) {
+ public WeightController(OverrideService overrideService, ProviderService providerService) {
this.overrideService = overrideService;
+ this.providerService = providerService;
}
@RequestMapping(method = RequestMethod.POST)
@@ -52,6 +56,10 @@
if (StringUtils.isBlank(weightDTO.getService()) && StringUtils.isBlank(weightDTO.getApplication())) {
throw new ParamValidationException("Either Service or application is required.");
}
+ String application = weightDTO.getApplication();
+ if (StringUtils.isNotEmpty(application) && this.providerService.findVersionInApplication(application).equals("2.6")) {
+ throw new VersionValidationException("dubbo 2.6 does not support application scope blackwhite list config");
+ }
overrideService.saveWeight(weightDTO);
return true;
}