aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorGuillaume Jambet <guillaume.jambet@sonarsource.com>2017-11-02 15:12:51 +0100
committerGuillaume Jambet <guillaume.jambet@gmail.com>2017-11-08 13:51:31 +0100
commit763476fc5561cdebaa13393b123464178dd9a1f1 (patch)
treec93cef0992321ee628fd2f3a8569537157de63be /server
parent0b7335e7128458cdba491ec34ec8da9de1d6f06e (diff)
downloadsonarqube-763476fc5561cdebaa13393b123464178dd9a1f1.tar.gz
sonarqube-763476fc5561cdebaa13393b123464178dd9a1f1.zip
SONAR-10040 add length validation to Metrics ws
Diffstat (limited to 'server')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricValidator.java8
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/metric/ws/CreateAction.java18
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java21
3 files changed, 32 insertions, 15 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricValidator.java b/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricValidator.java
index 3440c871aad..dad18e3b939 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricValidator.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/metric/MetricValidator.java
@@ -27,10 +27,10 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Strings.isNullOrEmpty;
public class MetricValidator {
- private static final int MAX_KEY_LENGTH = 64;
- private static final int MAX_NAME_LENGTH = 64;
- private static final int MAX_DOMAIN_LENGTH = 64;
- private static final int MAX_DESCRIPTION_LENGTH = 255;
+ public static final int MAX_KEY_LENGTH = 64;
+ public static final int MAX_NAME_LENGTH = 64;
+ public static final int MAX_DOMAIN_LENGTH = 64;
+ public static final int MAX_DESCRIPTION_LENGTH = 255;
private MetricValidator() {
// static utility methods only
diff --git a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/CreateAction.java b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/CreateAction.java
index 59b37d16fa1..7d23e532472 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/CreateAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/CreateAction.java
@@ -33,6 +33,10 @@ import org.sonar.db.metric.MetricDto;
import org.sonar.server.user.UserSession;
import static com.google.common.base.Preconditions.checkArgument;
+import static org.sonar.db.metric.MetricValidator.MAX_DESCRIPTION_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_DOMAIN_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_KEY_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_NAME_LENGTH;
import static org.sonar.server.util.MetricKeyValidator.checkMetricKeyFormat;
import static org.sonar.server.ws.WsUtils.checkRequest;
@@ -67,16 +71,18 @@ public class CreateAction implements MetricsWsAction {
.setSince("5.2")
.setHandler(this);
- action.createParam(PARAM_NAME)
- .setRequired(true)
- .setDescription("Name")
- .setExampleValue("Team Size");
-
action.createParam(PARAM_KEY)
.setRequired(true)
+ .setMaximumLength(MAX_KEY_LENGTH)
.setDescription("Key")
.setExampleValue("team_size");
+ action.createParam(PARAM_NAME)
+ .setRequired(true)
+ .setMaximumLength(MAX_NAME_LENGTH)
+ .setDescription("Name")
+ .setExampleValue("Team Size");
+
action.createParam(PARAM_TYPE)
.setRequired(true)
.setDescription("Metric type key")
@@ -85,9 +91,11 @@ public class CreateAction implements MetricsWsAction {
action.createParam(PARAM_DESCRIPTION)
.setDescription("Description")
+ .setMaximumLength(MAX_DESCRIPTION_LENGTH)
.setExampleValue("Size of the team");
action.createParam(PARAM_DOMAIN)
+ .setMaximumLength(MAX_DOMAIN_LENGTH)
.setDescription("Domain")
.setExampleValue("Tests");
}
diff --git a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java
index 2cefd31a725..38ade60de5a 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java
@@ -33,6 +33,10 @@ import org.sonar.db.metric.MetricDto;
import org.sonar.server.user.UserSession;
import org.sonar.server.util.MetricKeyValidator;
+import static org.sonar.db.metric.MetricValidator.MAX_DESCRIPTION_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_DOMAIN_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_KEY_LENGTH;
+import static org.sonar.db.metric.MetricValidator.MAX_NAME_LENGTH;
import static org.sonar.server.ws.WsUtils.checkRequest;
public class UpdateAction implements MetricsWsAction {
@@ -73,23 +77,28 @@ public class UpdateAction implements MetricsWsAction {
.setDescription("Id of the custom metric to update")
.setExampleValue("42");
- action.createParam(PARAM_NAME)
- .setDescription("Name")
- .setExampleValue("Team Size");
-
action.createParam(PARAM_KEY)
.setDescription("Key")
+ .setMaximumLength(MAX_KEY_LENGTH)
+ .setDescription("Key")
.setExampleValue("team_size");
+ action.createParam(PARAM_NAME)
+ .setMaximumLength(MAX_NAME_LENGTH)
+ .setDescription("Name");
+
action.createParam(PARAM_TYPE)
- .setDescription("Type")
- .setPossibleValues(Metric.ValueType.names());
+ .setDescription("Metric type key")
+ .setPossibleValues(Metric.ValueType.names())
+ .setExampleValue(Metric.ValueType.INT.name());
action.createParam(PARAM_DESCRIPTION)
.setDescription("Description")
+ .setMaximumLength(MAX_DESCRIPTION_LENGTH)
.setExampleValue("Size of the team");
action.createParam(PARAM_DOMAIN)
+ .setMaximumLength(MAX_DOMAIN_LENGTH)
.setDescription("Domain")
.setExampleValue("Tests");
}