diff --git a/src/main/java/com/ctrip/zeus/service/model/handler/impl/DefaultGroupValidator.java b/src/main/java/com/ctrip/zeus/service/model/handler/impl/DefaultGroupValidator.java index 7f395584..f6a4a8d0 100644 --- a/src/main/java/com/ctrip/zeus/service/model/handler/impl/DefaultGroupValidator.java +++ b/src/main/java/com/ctrip/zeus/service/model/handler/impl/DefaultGroupValidator.java @@ -40,7 +40,7 @@ public class DefaultGroupValidator implements GroupValidator { private final Set pathPrefixModifier = Sets.newHashSet("=", "~", "~*", "^~"); private final String standardSuffix = "($|/|\\?)"; private final String[] standardSuffixIdentifier = new String[]{"$", "/", "\\?"}; - private final Pattern basicPathPath = Pattern.compile("^(\\w+\\/?)+(\\$|\\\\\\?)?"); + private final Pattern basicPathPath = Pattern.compile("^(\\w|-)+(\\$|\\\\\\?)?"); @Override public boolean exists(Long targetId) throws Exception { diff --git a/src/test/java/com/ctrip/zeus/service/model/PathValidationTest.java b/src/test/java/com/ctrip/zeus/service/model/PathValidationTest.java index ec7d2a5e..97d18ac1 100644 --- a/src/test/java/com/ctrip/zeus/service/model/PathValidationTest.java +++ b/src/test/java/com/ctrip/zeus/service/model/PathValidationTest.java @@ -107,6 +107,7 @@ public class PathValidationTest extends AbstractServerTest { String s4 = "members($|/|\\?)|membersite($|/|\\?)"; DefaultGroupValidator tmp = (DefaultGroupValidator) groupModelValidator; + Pattern p = Pattern.compile("^(\\w|-)+(\\$|\\\\\\?)?"); List r; try { r = tmp.regexLevelSplit(s1, 1); @@ -114,6 +115,10 @@ public class PathValidationTest extends AbstractServerTest { Assert.assertEquals("Thingstodo-Order-OrderService$", r.get(0)); Assert.assertEquals("Thingstodo-Order-OrderService/", r.get(1)); Assert.assertEquals("Thingstodo-Order-OrderService\\?", r.get(2)); + + Assert.assertTrue(p.matcher(r.get(0)).matches()); + Assert.assertTrue(p.matcher(r.get(1)).matches()); + Assert.assertTrue(p.matcher(r.get(2)).matches()); } catch (ValidationException e) { Assert.assertTrue(false); } @@ -121,7 +126,6 @@ public class PathValidationTest extends AbstractServerTest { try { r = tmp.regexLevelSplit(s2, 1); Assert.assertEquals(6, r.size()); - Pattern p = Pattern.compile("^\\w+($|/|\\?)?"); Assert.assertFalse(p.matcher(r.get(0)).matches()); Assert.assertFalse(p.matcher(r.get(1)).matches()); } catch (ValidationException e) {