From 2a5d7c1a948efa94203a93592c8137b63fc4757b Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Thu, 23 Jul 2015 15:35:20 +0200 Subject: [PATCH] SONAR-6571 update the metric key validation without dots nor semi-colon --- .../java/org/sonar/server/util/MetricKeyValidator.java | 10 +++++----- .../org/sonar/server/metric/ws/CreateActionTest.java | 2 +- .../org/sonar/server/util/MetricKeyValidatorTest.java | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/util/MetricKeyValidator.java b/server/sonar-server/src/main/java/org/sonar/server/util/MetricKeyValidator.java index d077cf42cc7..7f3d77412b7 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/util/MetricKeyValidator.java +++ b/server/sonar-server/src/main/java/org/sonar/server/util/MetricKeyValidator.java @@ -27,9 +27,9 @@ public class MetricKeyValidator { } /* - * Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit + * Allowed characters are alphanumeric, '-', '_', with at least one non-digit */ - private static final String VALID_MODULE_KEY_REGEXP = "[\\p{Alnum}\\-_.:]*[\\p{Alpha}\\-_.:]+[\\p{Alnum}\\-_.:]*"; + private static final String VALID_METRIC_KEY_REGEXP = "[\\p{Alnum}\\-_]*[\\p{Alpha}\\-_]+[\\p{Alnum}\\-_]*"; /** *

Test if given parameter is valid for a project/module. Valid format is:

@@ -39,7 +39,7 @@ public class MetricKeyValidator { *
  • Uppercase ASCII letters A-Z
  • *
  • Lowercase ASCII letters a-z
  • *
  • ASCII digits 0-9
  • - *
  • Punctuation signs dash '-', underscore '_', period '.' and colon ':'
  • + *
  • Punctuation signs dash '-', underscore '_'
  • * * *
  • At least one non-digit
  • @@ -48,12 +48,12 @@ public class MetricKeyValidator { * @return true if candidateKey can be used for a metric */ public static boolean isMetricKeyValid(String candidateKey) { - return candidateKey.matches(VALID_MODULE_KEY_REGEXP); + return candidateKey.matches(VALID_METRIC_KEY_REGEXP); } public static String checkMetricKeyFormat(String candidateKey) { if (!isMetricKeyValid(candidateKey)) { - throw new IllegalArgumentException(String.format("Malformed metric key '%s'. Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit.", + throw new IllegalArgumentException(String.format("Malformed metric key '%s'. Allowed characters are alphanumeric, '-', '_', with at least one non-digit.", candidateKey)); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java index 4d1d6833ff0..d844cdd171a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java @@ -261,7 +261,7 @@ public class CreateActionTest { expectedException.expect(IllegalArgumentException.class); newRequest() - .setParam(PARAM_KEY, "(123:456)") + .setParam(PARAM_KEY, "123:456") .setParam(PARAM_NAME, DEFAULT_NAME) .setParam(PARAM_TYPE, DEFAULT_TYPE) .execute(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/util/MetricKeyValidatorTest.java b/server/sonar-server/src/test/java/org/sonar/server/util/MetricKeyValidatorTest.java index c2ca240a249..d835fd69d73 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/util/MetricKeyValidatorTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/util/MetricKeyValidatorTest.java @@ -34,16 +34,16 @@ public class MetricKeyValidatorTest { @Test public void isMetricKeyValid() { assertThat(MetricKeyValidator.isMetricKeyValid("")).isFalse(); - assertThat(MetricKeyValidator.isMetricKeyValid("1.2.3:ABC-1.2.3")).isTrue(); - assertThat(MetricKeyValidator.isMetricKeyValid("123.321")).isTrue(); + assertThat(MetricKeyValidator.isMetricKeyValid("1_2_3-ABC-1_2_3")).isTrue(); + assertThat(MetricKeyValidator.isMetricKeyValid("123_321")).isTrue(); assertThat(MetricKeyValidator.isMetricKeyValid("123456")).isFalse(); - assertThat(MetricKeyValidator.isMetricKeyValid("(123.A.321)")).isFalse(); + assertThat(MetricKeyValidator.isMetricKeyValid("1.2.3_A_3:2:1")).isFalse(); } @Test public void checkMetricKeyFormat() { expectedException.expect(IllegalArgumentException.class); - expectedException.expectMessage("Malformed metric key '123456'. Allowed characters are alphanumeric, '-', '_', '.' and ':', with at least one non-digit."); + expectedException.expectMessage("Malformed metric key '123456'. Allowed characters are alphanumeric, '-', '_', with at least one non-digit."); MetricKeyValidator.checkMetricKeyFormat("123456"); } -- 2.39.5