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 =
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; :}
| 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(); :}
;
......
......@@ -48,7 +48,7 @@ aspect MQTT {
} else {
result = new MQTTSenderStub();
}
return result.setHost(getHost());
return result.setHost(getHost(), getUser(), getPassword());
}
//--- getMqttRoot ---
......
// ---------------- 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> ;
rel Item.Topic? <-> MqttTopic.Item* ;
......@@ -12,10 +12,21 @@ import java.util.concurrent.TimeUnit;
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
*/
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.
......
......@@ -29,11 +29,17 @@ public class MQTTSenderImpl implements MQTTSender {
private TimeUnit publishTimeoutUnit;
@Override
public MQTTSender setHost(ExternalHost host) {
public MQTTSender setHost(ExternalHost host, String username, String password) {
/* The host running the MQTT broker. */
URI hostUri = URI.create("tcp://" + host.getHostName() + ":" + host.getPort());
logger.debug("Host is {}", hostUri);
MQTT mqtt = new MQTT();
if (username != null && !username.isEmpty()) {
mqtt.setUserName(username);
}
if (password != null && !password.isEmpty()) {
mqtt.setPassword(password);
}
mqtt.setHost(hostUri);
connection = mqtt.futureConnection();
setConnectTimeout(2, TimeUnit.SECONDS);
......
......@@ -20,7 +20,7 @@ public class MQTTSenderStub implements MQTTSender {
private Logger logger = LogManager.getLogger(MQTTSenderStub.class);
private PublishCallback callback;
public MQTTSender setHost(ExternalHost host) {
public MQTTSender setHost(ExternalHost host, String username, String password) {
return this;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment