Skip to content

Commit dd80fd1

Browse files
committed
add mqtt self-signed config
1 parent d3ba6b4 commit dd80fd1

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

toolkit-mqtt/src/main/java/iot/technology/client/toolkit/mqtt/service/MqttClientConfig.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
*/
2525
public final class MqttClientConfig {
2626

27-
private final SslContext sslContext;
28-
27+
private SslContext sslContext;
2928
private String clientId;
3029
private int timeoutSeconds = 10;
3130
private int keepAlive = 10;
@@ -160,6 +159,10 @@ public SslContext getSslContext() {
160159
return sslContext;
161160
}
162161

162+
public void setSslContext(SslContext context) {
163+
this.sslContext = context;
164+
}
165+
163166
public String getHost() {
164167
return host;
165168
}

toolkit-mqtt/src/main/java/iot/technology/client/toolkit/mqtt/service/domain/MqttConfigSettingsDomain.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,20 @@
1717

1818
import io.netty.handler.codec.mqtt.MqttQoS;
1919
import io.netty.handler.codec.mqtt.MqttVersion;
20+
import io.netty.handler.ssl.SslContext;
21+
import io.netty.handler.ssl.SslContextBuilder;
22+
import iot.technology.client.toolkit.common.constants.CertTypeEnum;
2023
import iot.technology.client.toolkit.common.constants.ConfirmCodeEnum;
2124
import iot.technology.client.toolkit.common.constants.MqttVersionEnum;
2225
import iot.technology.client.toolkit.common.utils.JsonUtils;
26+
import iot.technology.client.toolkit.common.utils.StringUtils;
2327
import iot.technology.client.toolkit.mqtt.config.MqttSettings;
2428
import iot.technology.client.toolkit.mqtt.config.MqttSettingsInfo;
2529
import iot.technology.client.toolkit.mqtt.service.MqttClientConfig;
2630
import iot.technology.client.toolkit.mqtt.service.core.MqttClientService;
2731

32+
import javax.net.ssl.SSLException;
33+
import java.io.File;
2834
import java.io.Serializable;
2935

3036
/**
@@ -108,6 +114,21 @@ public MqttClientConfig convertMqttClientConfig() {
108114
config.setTimeoutSeconds(config.getTimeoutSeconds());
109115
config.setKeepAlive(config.getKeepAlive());
110116
}
117+
if (ssl.equals(ConfirmCodeEnum.YES.getValue()) && certType.equals(CertTypeEnum.SELF_SIGNED.getDesc())) {
118+
SslContext sslContext = null;
119+
try {
120+
sslContext = SslContextBuilder.forClient()
121+
.keyManager(new File(clientCert), new File(clientKey))
122+
.trustManager(new File(ca))
123+
.build();
124+
} catch (SSLException e) {
125+
StringBuilder sb = new StringBuilder();
126+
sb.append("sslContext load fail!");
127+
sb.append(StringUtils.lineSeparator());
128+
System.out.println(sb);
129+
}
130+
config.setSslContext(sslContext);
131+
}
111132
if (lastWillAndTestament.equals(ConfirmCodeEnum.YES.getValue())) {
112133
MqttQoS qos = MqttQoS.valueOf(Integer.parseInt(lastWillQoS));
113134
boolean retain = lastWillRetain.equals(ConfirmCodeEnum.YES.getValue());

0 commit comments

Comments
 (0)