diff --git a/tools/src/main/java/org/thingsboard/client/tools/MqttSslClient.java b/tools/src/main/java/org/thingsboard/client/tools/MqttSslClient.java index 339f26ded8..dd27e44a1d 100644 --- a/tools/src/main/java/org/thingsboard/client/tools/MqttSslClient.java +++ b/tools/src/main/java/org/thingsboard/client/tools/MqttSslClient.java @@ -50,86 +50,38 @@ public class MqttSslClient { File ksFile = new File(ksUrl.toURI()); URL tsUrl = Resources.getResource(KEY_STORE_FILE); File tsFile = new File(tsUrl.toURI()); - char[] ksPwd = setKeyPassword(); - KeyStore trustStore = setKeyStore(tsFile, ksPwd); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - TrustManagerFactory tmf = setTrustManagerFactory(trustStore); + KeyStore trustStore = KeyStore.getInstance(JKS); + char[] ksPwd = new char[]{0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x5F, 0x6B, 0x73, 0x5F, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64}; + trustStore.load(new FileInputStream(tsFile), ksPwd); + tmf.init(trustStore); + KeyStore ks = KeyStore.getInstance(JKS); - KeyStore ks = setKeyStore2(ksFile, ksPwd); + ks.load(new FileInputStream(ksFile), ksPwd); + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + char[] clientPwd = new char[]{0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x5F, 0x6B, 0x65, 0x79, 0x5F, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64}; + kmf.init(ks, clientPwd); - KeyManagerFactory kmf = setKeyManagerFactory(ks); - - SSLContext sslContext = setSSLContext(kmf, tmf); - - MqttConnectOptions mqttConnectOptions = setMqttConnectOptions(sslContext); - - MqttAsyncClient mqttAsyncClient = setMqttAsyncClient(mqttConnectOptions); - - setMessage(mqttAsyncClient, "v1/devices/me/telemetry", "{\"key1\":\"value1\", \"key2\":true, \"key3\": 3.0, \"key4\": 4}"); + KeyManager[] km = kmf.getKeyManagers(); + TrustManager[] tm = tmf.getTrustManagers(); + SSLContext sslContext = SSLContext.getInstance(TLS); + sslContext.init(km, tm, null); + MqttConnectOptions options = new MqttConnectOptions(); + options.setSocketFactory(sslContext.getSocketFactory()); + MqttAsyncClient client = new MqttAsyncClient(MQTT_URL, CLIENT_ID); + client.connect(options); + Thread.sleep(3000); + MqttMessage message = new MqttMessage(); + message.setPayload("{\"key1\":\"value1\", \"key2\":true, \"key3\": 3.0, \"key4\": 4}".getBytes()); + client.publish("v1/devices/me/telemetry", message); + client.disconnect(); + log.info("Disconnected"); + System.exit(0); } catch (Exception e) { log.error("Unexpected exception occurred in MqttSslClient", e); } } - - private static char[] setKeyPassword(){ - return new char[]{0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x5F, 0x6B, 0x73, 0x5F, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64}; - } - - private static KeyStore setKeyStore(File tsFile, char[] ksPwd) throws Exception{ - KeyStore trustStore = KeyStore.getInstance(JKS); - trustStore.load(new FileInputStream(tsFile), ksPwd); - return trustStore; - } - - private static TrustManagerFactory setTrustManagerFactory(KeyStore trustStore) throws Exception { - TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(trustStore); - return tmf; - } - - private static KeyStore setKeyStore2(File ksFile, char[] ksPwd)throws Exception{ - KeyStore ks = KeyStore.getInstance(JKS); - ks.load(new FileInputStream(ksFile), ksPwd); - return ks; - } - - private static KeyManagerFactory setKeyManagerFactory(KeyStore ks) throws Exception { - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); - char[] clientPwd = new char[]{0x63, 0x6C, 0x69, 0x65, 0x6E, 0x74, 0x5F, 0x6B, 0x65, 0x79, 0x5F, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6F, 0x72, 0x64}; - kmf.init(ks, clientPwd); - return kmf; - } - - private static SSLContext setSSLContext(KeyManagerFactory kmf, TrustManagerFactory tmf) throws Exception { - KeyManager[] km = kmf.getKeyManagers(); - TrustManager[] tm = tmf.getTrustManagers(); - SSLContext sslContext = SSLContext.getInstance(TLS); - sslContext.init(km, tm, null); - return sslContext; - } - - private static MqttConnectOptions setMqttConnectOptions(SSLContext sslContext){ - MqttConnectOptions options = new MqttConnectOptions(); - options.setSocketFactory(sslContext.getSocketFactory()); - return options; - } - - private static MqttAsyncClient setMqttAsyncClient(MqttConnectOptions options) throws Exception{ - MqttAsyncClient client = new MqttAsyncClient(MQTT_URL, CLIENT_ID); - client.connect(options); - Thread.sleep(3000); - return client; - } - - private static void setMessage(MqttAsyncClient client, String topic, String payload) throws Exception { - MqttMessage message = new MqttMessage(); - message.setPayload(payload.getBytes()); - client.publish(topic, message); - client.disconnect(); - log.info("Disconnected"); - System.exit(0); - } - } \ No newline at end of file