Browse Source

change regex for # filter

pull/3704/head
ShvaykaD 6 years ago
parent
commit
4ee38a15d3
  1. 2
      common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/util/MqttTopicFilterFactory.java
  2. 11
      common/transport/mqtt/src/test/java/org/thingsboard/server/transport/mqtt/util/MqttTopicFilterFactoryTest.java

2
common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/util/MqttTopicFilterFactory.java

@ -36,7 +36,7 @@ public class MqttTopicFilterFactory {
if (filter.contains("+") || filter.contains("#")) { if (filter.contains("+") || filter.contains("#")) {
String regex; String regex;
if (filter.equals("#")) { if (filter.equals("#")) {
regex = filter.replace("#", "^(?!/).+"); regex = filter.replace("#", "\\S+");
} else { } else {
regex = filter regex = filter
.replace("\\", "\\\\") .replace("\\", "\\\\")

11
common/transport/mqtt/src/test/java/org/thingsboard/server/transport/mqtt/util/MqttTopicFilterFactoryTest.java

@ -30,9 +30,10 @@ public class MqttTopicFilterFactoryTest {
private static String TEST_STR_1 = "Sensor/Temperature/House/48"; private static String TEST_STR_1 = "Sensor/Temperature/House/48";
private static String TEST_STR_2 = "Sensor/Temperature"; private static String TEST_STR_2 = "Sensor/Temperature";
private static String TEST_STR_3 = "Sensor/Temperature2/House/48"; private static String TEST_STR_3 = "Sensor/Temperature2/House/48";
private static String TEST_STR_4 = "/Sensor/Temperature2/House/48";
private static String TEST_STR_4 = String.format("%s%n%s", "/Sensor/Temperature", "/House/48"); private static String TEST_STR_5 = String.format("%s%n%s", "/Sensor/Temperature", "/House/48");
private static String TEST_STR_5 = "/" + TEST_STR_1; private static String TEST_STR_6 = "";
private static String TEST_STR_7 = " ";
@Test @Test
public void metadataCanBeUpdated() throws ScriptException { public void metadataCanBeUpdated() throws ScriptException {
@ -58,8 +59,10 @@ public class MqttTopicFilterFactoryTest {
assertTrue(filter.filter(TEST_STR_1)); assertTrue(filter.filter(TEST_STR_1));
assertTrue(filter.filter(TEST_STR_2)); assertTrue(filter.filter(TEST_STR_2));
assertTrue(filter.filter(TEST_STR_3)); assertTrue(filter.filter(TEST_STR_3));
assertFalse(filter.filter(TEST_STR_4)); assertTrue(filter.filter(TEST_STR_4));
assertFalse(filter.filter(TEST_STR_5)); assertFalse(filter.filter(TEST_STR_5));
assertFalse(filter.filter(TEST_STR_6));
assertFalse(filter.filter(TEST_STR_7));
} }
} }

Loading…
Cancel
Save