diff --git a/mqtt/src/main/scala/akka/stream/alpakka/mqtt/Mqtt.scala b/mqtt/src/main/scala/akka/stream/alpakka/mqtt/Mqtt.scala index aa90f27a0f..0a8ca5c989 100644 --- a/mqtt/src/main/scala/akka/stream/alpakka/mqtt/Mqtt.scala +++ b/mqtt/src/main/scala/akka/stream/alpakka/mqtt/Mqtt.scala @@ -3,6 +3,8 @@ */ package akka.stream.alpakka.mqtt +import javax.net.ssl.SSLSocketFactory + import akka.stream.stage._ import akka.util.ByteString import org.eclipse.paho.client.mqttv3.{MqttMessage => PahoMqttMessage, _} @@ -74,6 +76,7 @@ final case class MqttConnectionSettings( clientId: String, persistence: MqttClientPersistence, auth: Option[(String, String)] = None, + socketFactory: Option[SSLSocketFactory] = None, cleanSession: Boolean = true, will: Option[Will] = None ) { @@ -159,6 +162,9 @@ private[mqtt] trait MqttConnectorLogic { this: GraphStageLogic => connectOptions.setUserName(user) connectOptions.setPassword(password.toCharArray) } + connectionSettings.socketFactory.foreach { socketFactory => + connectOptions.setSocketFactory(socketFactory) + } connectionSettings.will.foreach { will => connectOptions.setWill(will.message.topic, will.message.payload.toArray, will.qos.byteValue.toInt, will.retained) }