Browse Source

fix MqttTopicFilterFactory toFilter

pull/3704/head
ShvaykaD 6 years ago
parent
commit
22c9103955
  1. 17
      common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/util/MqttTopicFilterFactory.java

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

@ -33,16 +33,13 @@ public class MqttTopicFilterFactory {
throw new IllegalArgumentException("Topic filter can't be empty!");
}
return filters.computeIfAbsent(topicFilter, filter -> {
if (filter.contains("+") || filter.contains("#")) {
String regex;
if (filter.equals("#")) {
return new AlwaysTrueTopicFilter();
} else {
regex = filter
.replace("\\", "\\\\")
.replace("+", "[^/]+")
.replace("/#", "($|/.*)");
}
if (filter.equals("#")) {
return new AlwaysTrueTopicFilter();
} else if (filter.contains("+") || filter.contains("#")) {
String regex = filter
.replace("\\", "\\\\")
.replace("+", "[^/]+")
.replace("/#", "($|/.*)");
log.debug("Converting [{}] to [{}]", filter, regex);
return new RegexTopicFilter(regex);
} else {

Loading…
Cancel
Save