diff --git a/api/src/main/java/run/halo/app/extension/router/selector/Operator.java b/api/src/main/java/run/halo/app/extension/router/selector/Operator.java index 04f748094..cab3dc127 100644 --- a/api/src/main/java/run/halo/app/extension/router/selector/Operator.java +++ b/api/src/main/java/run/halo/app/extension/router/selector/Operator.java @@ -12,7 +12,7 @@ public enum Operator implements Converter { public SelectorCriteria convert(@Nullable String selector) { if (preFlightCheck(selector, 3)) { var i = selector.indexOf(getOperator()); - if (i > 0 && (i + getOperator().length()) < selector.length() - 1) { + if (i > 0 && (i + getOperator().length()) <= selector.length() - 1) { String key = selector.substring(0, i); String value = selector.substring(i + getOperator().length()); return new SelectorCriteria(key, this, Set.of(value)); diff --git a/api/src/test/java/run/halo/app/extension/router/selector/OperatorTest.java b/api/src/test/java/run/halo/app/extension/router/selector/OperatorTest.java index ee349b4d1..ae426277c 100644 --- a/api/src/test/java/run/halo/app/extension/router/selector/OperatorTest.java +++ b/api/src/test/java/run/halo/app/extension/router/selector/OperatorTest.java @@ -27,6 +27,8 @@ class OperatorTest { new TestCase("name=", Equals, null), new TestCase("name=value", Equals, new SelectorCriteria("name", Equals, Set.of("value"))), + new TestCase("name=v", Equals, + new SelectorCriteria("name", Equals, Set.of("v"))), new TestCase("", NotEquals, null), new TestCase("=", NotEquals, null), @@ -59,4 +61,4 @@ class OperatorTest { assertEquals(testCase.expected(), testCase.converter().convert(testCase.source())); }); } -} \ No newline at end of file +}