Skip to content
Snippets Groups Projects
Commit c8d9962f authored by René Schöne's avatar René Schöne
Browse files

Add user and password to mqtt settings.

parent 150498ac
No related branches found
No related tags found
No related merge requests found
Pipeline #10005 failed
...@@ -227,6 +227,8 @@ MqttRoot mqtt_root_body = ...@@ -227,6 +227,8 @@ MqttRoot mqtt_root_body =
INCOMING EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setIncomingPrefix(n); return mrb; :} INCOMING EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setIncomingPrefix(n); return mrb; :}
| OUTGOING EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setOutgoingPrefix(n); return mrb; :} | OUTGOING EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setOutgoingPrefix(n); return mrb; :}
| HOST EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setHostByName(n); return mrb; :} | HOST EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setHostByName(n); return mrb; :}
| USER EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setUser(n); return mrb; :}
| PASSWORD EQUALS TEXT.n mqtt_root_body.mrb {: mrb.setPassword(n); return mrb; :}
| {: return new MqttRoot(); :} | {: return new MqttRoot(); :}
; ;
......
...@@ -48,7 +48,7 @@ aspect MQTT { ...@@ -48,7 +48,7 @@ aspect MQTT {
} else { } else {
result = new MQTTSenderStub(); result = new MQTTSenderStub();
} }
return result.setHost(getHost()); return result.setHost(getHost(), getUser(), getPassword());
} }
//--- getMqttRoot --- //--- getMqttRoot ---
......
// ---------------- MQTT ------------------------------ // ---------------- MQTT ------------------------------
MqttRoot ::= Topic:MqttTopic* <IncomingPrefix:String> <OutgoingPrefix:String> [Host:ExternalHost] ; MqttRoot ::= Topic:MqttTopic* <IncomingPrefix:String> <OutgoingPrefix:String> <User:String> <Password:String> [Host:ExternalHost] ;
MqttTopic ::= <TopicString:String> ; MqttTopic ::= <TopicString:String> ;
rel Item.Topic? <-> MqttTopic.Item* ; rel Item.Topic? <-> MqttTopic.Item* ;
...@@ -12,10 +12,21 @@ import java.util.concurrent.TimeUnit; ...@@ -12,10 +12,21 @@ import java.util.concurrent.TimeUnit;
public interface MQTTSender extends AutoCloseable { public interface MQTTSender extends AutoCloseable {
/** /**
* Sets the host running the MQTT broker. * Sets the host running the MQTT broker (no username/password set).
* @param host host name (IP address or domain name) and port * @param host host name (IP address or domain name) and port
*/ */
MQTTSender setHost(ExternalHost host); default MQTTSender setHost(ExternalHost host) {
return setHost(host, null, null);
}
/**
* Sets the host, username and password running the MQTT broker.
* @param host host name (IP address or domain name) and port
* @param username username for authentication
* @param password password for authentication
*/
MQTTSender setHost(ExternalHost host, String username, String password);
/** /**
* Set the timeout used for connecting and disconnecting. * Set the timeout used for connecting and disconnecting.
......
...@@ -29,11 +29,17 @@ public class MQTTSenderImpl implements MQTTSender { ...@@ -29,11 +29,17 @@ public class MQTTSenderImpl implements MQTTSender {
private TimeUnit publishTimeoutUnit; private TimeUnit publishTimeoutUnit;
@Override @Override
public MQTTSender setHost(ExternalHost host) { public MQTTSender setHost(ExternalHost host, String username, String password) {
/* The host running the MQTT broker. */ /* The host running the MQTT broker. */
URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + host.getPort()); URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + host.getPort());
logger.debug("Host is {}", hostUri); logger.debug("Host is {}", hostUri);
MQTT mqtt = new MQTT(); MQTT mqtt = new MQTT();
if (username != null && !username.isEmpty()) {
mqtt.setUserName(username);
}
if (password != null && !password.isEmpty()) {
mqtt.setPassword(password);
}
mqtt.setHost(hostUri); mqtt.setHost(hostUri);
connection = mqtt.futureConnection(); connection = mqtt.futureConnection();
setConnectTimeout(2, TimeUnit.SECONDS); setConnectTimeout(2, TimeUnit.SECONDS);
......
...@@ -20,7 +20,7 @@ public class MQTTSenderStub implements MQTTSender { ...@@ -20,7 +20,7 @@ public class MQTTSenderStub implements MQTTSender {
private Logger logger = LogManager.getLogger(MQTTSenderStub.class); private Logger logger = LogManager.getLogger(MQTTSenderStub.class);
private PublishCallback callback; private PublishCallback callback;
public MQTTSender setHost(ExternalHost host) { public MQTTSender setHost(ExternalHost host, String username, String password) {
return this; return this;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment