From 93fbab4aed79b57ceea572c91d1eaa4e60220178 Mon Sep 17 00:00:00 2001 From: Manuel Krombholz <s3866577@msx.tu-dresden.de> Date: Wed, 26 May 2021 01:59:53 +0200 Subject: [PATCH] Added mqtt username and password for receiver --- .../inf/st/eraser/openhab2/mqtt/MQTTUpdater.java | 4 +++- .../tudresden/inf/st/eraser/util/MqttReceiver.java | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/mqtt/MQTTUpdater.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/mqtt/MQTTUpdater.java index 64711484..79d19c6d 100644 --- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/mqtt/MQTTUpdater.java +++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/mqtt/MQTTUpdater.java @@ -40,7 +40,9 @@ public class MQTTUpdater implements AutoCloseable { public void setRoot(Root root) { ExternalHost host = root.getMqttRoot().getHost(); delegatee.setHost(host.getHostName(), host.getPort()); - delegatee.setOnMessage((topicString, message) -> + delegatee.setUsername(root.getMqttRoot().getUser()); + delegatee.setPassword(root.getMqttRoot().getPassword()); + delegatee.setOnMessage((topicString, message)-> root.getMqttRoot().resolveTopic(topicString).ifPresent(topic -> topic.getItems().forEach( item -> itemUpdate(item, message)))); diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java index 75bbfe3c..4c448c27 100644 --- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java +++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/util/MqttReceiver.java @@ -28,6 +28,8 @@ public class MqttReceiver implements AutoCloseable { /** The host running the MQTT broker. */ private URI host; + private String username; + private String password; /** The connection to the MQTT broker. */ private CallbackConnection connection; /** Whether we are subscribed to the topics yet */ @@ -54,6 +56,14 @@ public class MqttReceiver implements AutoCloseable { logger.debug("Host is {}", this.host); } + public void setUsername(String username) { + this.username = username; + } + + public void setPassword(String password) { + this.password = password; + } + public void setOnMessage(BiConsumer<String, String> callback) { this.onMessageCallback = callback; } @@ -101,6 +111,8 @@ public class MqttReceiver implements AutoCloseable { Objects.requireNonNull(this.host, "Host need to be set!"); MQTT mqtt = new MQTT(); mqtt.setHost(this.host); + mqtt.setPassword(this.password); + mqtt.setUserName(this.username); connection = mqtt.callbackConnection(); AtomicReference<Throwable> error = new AtomicReference<>(); connection.listener(new ExtendedListener() { -- GitLab