diff options
author | Guillaume Jambet <guillaume.jambet@sonarsource.com> | 2017-11-02 15:12:51 +0100 |
---|---|---|
committer | Guillaume Jambet <guillaume.jambet@gmail.com> | 2017-11-08 13:51:31 +0100 |
commit | 763476fc5561cdebaa13393b123464178dd9a1f1 (patch) | |
tree | c93cef0992321ee628fd2f3a8569537157de63be /server | |
parent | 0b7335e7128458cdba491ec34ec8da9de1d6f06e (diff) | |
download | sonarqube-763476fc5561cdebaa13393b123464178dd9a1f1.tar.gz sonarqube-763476fc5561cdebaa13393b123464178dd9a1f1.zip |
SONAR-10040 add length validation to Metrics ws
Diffstat (limited to 'server')
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"); } |