From 66d7ef4f8628d2505f2c9280f969fff8f3a0938b Mon Sep 17 00:00:00 2001 From: hwf453 Date: Thu, 17 Oct 2024 21:00:15 +0800 Subject: [PATCH] sslHk --- .../AdminClientAppmqttserverApplication.java | 5 + .../MqttHkAppPushRSAClient.java | 168 ++++++++++++++++++ .../MqttRSAClient.java | 35 +++- .../MqttRSAClientYFAPP.java | 33 +++- .../MqttRSAClientZYAPP.java | 36 +++- .../utils/MqttSSLSocketFactory.java | 90 ++++++++++ .../utils/UUIDUtil.java | 9 + .../src/main/resources/application.yml | 4 +- .../src/main/resources/sslHk/client.crt | Bin 0 -> 870 bytes .../src/main/resources/sslHk/client.key | 27 +++ .../src/main/resources/sslHk/my_root_ca.crt | Bin 0 -> 1009 bytes SpringCloud-Example/eureka-server/pom.xml | 4 +- .../src/main/resources/application.properties | 4 +- 13 files changed, 399 insertions(+), 16 deletions(-) create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttHkAppPushRSAClient.java create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/MqttSSLSocketFactory.java create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/UUIDUtil.java create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.crt create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.key create mode 100644 SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/my_root_ca.crt diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/AdminClientAppmqttserverApplication.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/AdminClientAppmqttserverApplication.java index 429ebf6..e270853 100644 --- a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/AdminClientAppmqttserverApplication.java +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/AdminClientAppmqttserverApplication.java @@ -68,8 +68,13 @@ public class AdminClientAppmqttserverApplication implements CommandLineRunner, A if (userController != null) { System.out.println("------------------------"); System.out.println("UserController is not empty"); + //明文传输 MqttRSAClient client = new MqttRSAClient(); client.start(userController); + + //RSA加密传输数据 + MqttHkAppPushRSAClient clientRsa = new MqttHkAppPushRSAClient(); + clientRsa.start(userController); } else { System.out.println("UserController is empty"); } diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttHkAppPushRSAClient.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttHkAppPushRSAClient.java new file mode 100644 index 0000000..68916d4 --- /dev/null +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttHkAppPushRSAClient.java @@ -0,0 +1,168 @@ +package com.rehome.adminclientappmqttserver; + + + +import com.google.gson.Gson; +import com.rehome.adminclientappmqttserver.controller.UserController; +import com.rehome.adminclientappmqttserver.entity.User; +import com.rehome.adminclientappmqttserver.utils.MqttSSLSocketFactory; +import com.rehome.adminclientappmqttserver.utils.UUIDUtil; +import org.eclipse.paho.client.mqttv3.*; +import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import javax.net.ssl.SSLSocketFactory; +import java.io.InputStream; +import java.util.Timer; +import java.util.TimerTask; + + +public class MqttHkAppPushRSAClient { + /** + * 代理服务器ip地址 + */ + public static final String MQTT_BROKER_HOST = "ssl://47.242.184.139:8883"; + + /** + * 客户端唯一标识 + */ + public static String MQTT_CLIENT_ID = "AppServer_disruptor_nmc_server_04"; + + /** + *帐号 + */ + public static String USERNAME = "admin"; + /** + * 密码 + */ + public static String PASSWORD = "publish452131wW452131wW$"; + /** + * 订阅标识 + */ + public static String TOPIC_FILTER = "app_push"; + + private volatile static MqttClient mqttClient; + private static MqttConnectOptions options; + private static int qos = 2; + + + //定时器 + private Timer timer; + + public MqttHkAppPushRSAClient(){ + try { + MQTT_CLIENT_ID = UUIDUtil.getUUID(); + // host为主机名,clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示, + // MemoryPersistence设置clientid的保存形式,默认为以内存保存 + mqttClient = new MqttClient(MQTT_BROKER_HOST, MQTT_CLIENT_ID, new MemoryPersistence()); + // 配置参数信息 + options = new MqttConnectOptions(); + // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录, + // 这里设置为true表示每次连接到服务器都以新的身份连接 + options.setCleanSession(false); + // 设置用户名 + options.setUserName(USERNAME); + // 设置密码 + options.setPassword(PASSWORD.toCharArray()); + // 设置超时时间 单位为秒 + options.setConnectionTimeout(10); + // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制 + options.setKeepAliveInterval(20); + //断线重连 + options.setAutomaticReconnect(true); + //mqtt服务器端单双向加密 + InputStream caCrtFile = this.getClass().getResourceAsStream("/sslHk/my_root_ca.crt"); + InputStream crtFile = this.getClass().getResourceAsStream("/sslHk/client.crt"); + InputStream keyFile = this.getClass().getResourceAsStream("/sslHk/client.key"); + String password = ""; + SSLSocketFactory socketFactory = MqttSSLSocketFactory.getTwoDirSocketFactory(caCrtFile,crtFile,keyFile,password); + options.setSocketFactory(socketFactory); + } catch (Exception e) { + e.printStackTrace(); + } + } + public void start(UserController userController) { + try { + // 连接 + mqttClient.connect(options); + // 订阅 + mqttClient.subscribe(TOPIC_FILTER,qos); + // 设置回调 + mqttClient.setCallback(new MqttCallbackExtended(){ + + @Override + public void connectionLost(Throwable throwable) { + System.out.println("connectionLost"); + try { + mqttClient.reconnect(); + } catch (MqttException e) { + e.printStackTrace(); + } + } + + @Override + public void messageArrived(String s, MqttMessage mqttMessage) { + System.out.println("topic:"+s); + System.out.println("Qos:"+mqttMessage.getQos()); + System.out.println("message RSA:"+new String(mqttMessage.getPayload())); + System.out.println("珠海电厂APP收到mqtt消息"); + try { + String messageDe = RSAAndroid.decryptByPrivateKeyForSpiltStr(new String(mqttMessage.getPayload()), RSAAndroid.privateRsaKey); + System.out.println("message content:"+messageDe); + Gson gson = new Gson(); + + User userInfo = gson.fromJson(messageDe,User.class); + System.out.println(userInfo.getUsername()); + System.out.println(userInfo.getPassword()); + System.out.println(userInfo.getDate()); + System.out.println(userInfo.getImeinum()); + System.out.println(userInfo.getPhonemodel()); + System.out.println(userInfo.getSysversion()); + System.out.println(userInfo.getAppversion()); + //userController.saveUser(userInfo); + }catch (Exception e){ + e.printStackTrace(); + } + } + + @Override + public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { + System.out.println("deliveryComplete---------"+ iMqttDeliveryToken.isComplete()); + } + + @Override + public void connectComplete(boolean b, String s) { + //连接成功后调用 + try { + mqttClient.subscribe(TOPIC_FILTER,qos);//具体订阅代码 + } catch (MqttException e) { + e.printStackTrace(); + } + } + }); + + timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { + System.out.println("-------设定要指定任务--------"); + try { + //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的 + if (!mqttClient.isConnected()) { + System.out.println("***** 没有连接到服务器 *****"); + System.out.println("***** client to connect *****"); + // 重新连接 + mqttClient.connect(options); + } + if (mqttClient.isConnected()) {//连接成功,跳出连接 + System.out.println("***** connect success *****"); + } + } catch (MqttException e1) { + e1.printStackTrace(); + } + } + }, 10000,10000); + // 设定指定的时间time,此处为10000毫秒 + } catch (Exception e) { + e.printStackTrace(); + } + } +} + diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClient.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClient.java index f37c4ed..db80592 100644 --- a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClient.java +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClient.java @@ -5,11 +5,15 @@ import com.rehome.adminclientappmqttserver.controller.UserController; import com.rehome.adminclientappmqttserver.entity.User; import com.rehome.adminclientappmqttserver.service.UserService; import com.rehome.adminclientappmqttserver.service.impl.UserServiceImpl; +import com.rehome.adminclientappmqttserver.utils.UUIDUtil; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.Timer; +import java.util.TimerTask; + public class MqttRSAClient { /** @@ -20,7 +24,7 @@ public class MqttRSAClient { /** * 客户端唯一标识 */ - public static final String MQTT_CLIENT_ID = "AppServer_13"; + public static String MQTT_CLIENT_ID = "AppServer_13"; /** * @@ -38,10 +42,13 @@ public class MqttRSAClient { private volatile static MqttClient mqttClient; private static MqttConnectOptions options; private static int qos = 2; - private UserController userController; + + //定时器 + private Timer timer; public MqttRSAClient(){ try { + MQTT_CLIENT_ID = UUIDUtil.getUUID(); // host为主机名,clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示, // MemoryPersistence设置clientid的保存形式,默认为以内存保存 mqttClient = new MqttClient(MQTT_BROKER_HOST, MQTT_CLIENT_ID, new MemoryPersistence()); @@ -65,7 +72,6 @@ public class MqttRSAClient { } } public void start(UserController userController) { - this.userController=userController; try { // 连接 mqttClient.connect(options); @@ -85,7 +91,7 @@ public class MqttRSAClient { } @Override - public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { + public void messageArrived(String s, MqttMessage mqttMessage) { System.out.println("topic:"+s); System.out.println("Qos:"+mqttMessage.getQos()); System.out.println("message RSA:"+new String(mqttMessage.getPayload())); @@ -124,6 +130,27 @@ public class MqttRSAClient { } } }); + + timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { + System.out.println("-------设定要指定任务--------"); + try { + //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的 + if (!mqttClient.isConnected()) { + System.out.println("***** 没有连接到服务器 *****"); + System.out.println("***** client to connect *****"); + // 重新连接 + mqttClient.connect(options); + } + if (mqttClient.isConnected()) {//连接成功,跳出连接 + System.out.println("***** connect success *****"); + } + } catch (MqttException e1) { + e1.printStackTrace(); + } + } + }, 10000,10000); } catch (Exception e) { e.printStackTrace(); } diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientYFAPP.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientYFAPP.java index a64d10e..8b5d4b6 100644 --- a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientYFAPP.java +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientYFAPP.java @@ -4,9 +4,13 @@ package com.rehome.adminclientappmqttserver; import com.google.gson.Gson; import com.rehome.adminclientappmqttserver.controller.UseryfController; import com.rehome.adminclientappmqttserver.entity.Useryf; +import com.rehome.adminclientappmqttserver.utils.UUIDUtil; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import java.util.Timer; +import java.util.TimerTask; + public class MqttRSAClientYFAPP { /** @@ -17,7 +21,7 @@ public class MqttRSAClientYFAPP { /** * 客户端唯一标识 */ - public static final String MQTT_CLIENT_ID = "AppServer_YF_APP_server_03"; + public static String MQTT_CLIENT_ID = "AppServer_YF_APP_server_03"; /** * @@ -35,10 +39,13 @@ public class MqttRSAClientYFAPP { private volatile static MqttClient mqttClient; private static MqttConnectOptions options; private static int qos = 2; - private UseryfController userController; + + //定时器 + private Timer timer; public MqttRSAClientYFAPP(){ try { + MQTT_CLIENT_ID = UUIDUtil.getUUID(); // host为主机名,clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示, // MemoryPersistence设置clientid的保存形式,默认为以内存保存 mqttClient = new MqttClient(MQTT_BROKER_HOST, MQTT_CLIENT_ID, new MemoryPersistence()); @@ -62,7 +69,6 @@ public class MqttRSAClientYFAPP { } } public void start(UseryfController userController) { - this.userController=userController; try { // 连接 mqttClient.connect(options); @@ -118,6 +124,27 @@ public class MqttRSAClientYFAPP { } } }); + + timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { + System.out.println("-------设定要指定任务--------"); + try { + //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的 + if (!mqttClient.isConnected()) { + System.out.println("***** 没有连接到服务器 *****"); + System.out.println("***** client to connect *****"); + // 重新连接 + mqttClient.connect(options); + } + if (mqttClient.isConnected()) {//连接成功,跳出连接 + System.out.println("***** connect success *****"); + } + } catch (MqttException e1) { + e1.printStackTrace(); + } + } + }, 10000,10000); } catch (Exception e) { e.printStackTrace(); } diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientZYAPP.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientZYAPP.java index 80e3cca..b8bdc7e 100644 --- a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientZYAPP.java +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/MqttRSAClientZYAPP.java @@ -5,9 +5,13 @@ import com.google.gson.Gson; import com.rehome.adminclientappmqttserver.controller.UseryfController; import com.rehome.adminclientappmqttserver.controller.UserzyController; import com.rehome.adminclientappmqttserver.entity.Userzy; +import com.rehome.adminclientappmqttserver.utils.UUIDUtil; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; +import java.util.Timer; +import java.util.TimerTask; + public class MqttRSAClientZYAPP { /** @@ -18,7 +22,7 @@ public class MqttRSAClientZYAPP { /** * 客户端唯一标识 */ - public static final String MQTT_CLIENT_ID = "AppServer_ZY_APP_server_03"; + public static String MQTT_CLIENT_ID = "AppServer_ZY_APP_server_03"; /** * @@ -36,10 +40,14 @@ public class MqttRSAClientZYAPP { private volatile static MqttClient mqttClient; private static MqttConnectOptions options; private static int qos = 2; - private UserzyController userzyController; + + + //定时器 + private Timer timer; public MqttRSAClientZYAPP(){ try { + MQTT_CLIENT_ID = UUIDUtil.getUUID(); // host为主机名,clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示, // MemoryPersistence设置clientid的保存形式,默认为以内存保存 mqttClient = new MqttClient(MQTT_BROKER_HOST, MQTT_CLIENT_ID, new MemoryPersistence()); @@ -63,7 +71,6 @@ public class MqttRSAClientZYAPP { } } public void start(UserzyController userController) { - this.userzyController=userController; try { // 连接 mqttClient.connect(options); @@ -98,7 +105,7 @@ public class MqttRSAClientZYAPP { System.out.println(userInfo.getPassword()); System.out.println(userInfo.getDate()); System.out.println(userInfo.getNfc()); - userzyController.saveUserZY(userInfo); + userController.saveUserZY(userInfo); }catch (Exception e){ e.printStackTrace(); } @@ -119,6 +126,27 @@ public class MqttRSAClientZYAPP { } } }); + + timer = new Timer(); + timer.schedule(new TimerTask() { + public void run() { + System.out.println("-------设定要指定任务--------"); + try { + //判断拦截状态,这里注意一下,如果没有这个判断,是非常坑的 + if (!mqttClient.isConnected()) { + System.out.println("***** 没有连接到服务器 *****"); + System.out.println("***** client to connect *****"); + // 重新连接 + mqttClient.connect(options); + } + if (mqttClient.isConnected()) {//连接成功,跳出连接 + System.out.println("***** connect success *****"); + } + } catch (MqttException e1) { + e1.printStackTrace(); + } + } + }, 10000,10000); } catch (Exception e) { e.printStackTrace(); } diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/MqttSSLSocketFactory.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/MqttSSLSocketFactory.java new file mode 100644 index 0000000..beaf2e4 --- /dev/null +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/MqttSSLSocketFactory.java @@ -0,0 +1,90 @@ +package com.rehome.adminclientappmqttserver.utils; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.bouncycastle.openssl.PEMKeyPair; +import org.bouncycastle.openssl.PEMParser; +import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManagerFactory; +import java.io.BufferedInputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.security.KeyPair; +import java.security.KeyStore; +import java.security.Security; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; + +public class MqttSSLSocketFactory { + public static SSLSocketFactory getSingleSocketFactory(InputStream caCrtFileInputStream) throws Exception { + Security.addProvider(new BouncyCastleProvider()); + X509Certificate caCert = null; + + BufferedInputStream bis = new BufferedInputStream(caCrtFileInputStream); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + + while (bis.available() > 0) { + caCert = (X509Certificate) cf.generateCertificate(bis); + } + KeyStore caKs = KeyStore.getInstance(KeyStore.getDefaultType()); + caKs.load(null, null); + caKs.setCertificateEntry("cert-certificate", caCert); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(caKs); + SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); + sslContext.init(null, tmf.getTrustManagers(), null); + return sslContext.getSocketFactory(); + } + + public static SSLSocketFactory getTwoDirSocketFactory(InputStream caCrtFile, InputStream crtFile, InputStream keyFile, + String password) throws Exception { + Security.addProvider(new BouncyCastleProvider()); + + // load CA certificate + X509Certificate caCert = null; + + BufferedInputStream bis = new BufferedInputStream(caCrtFile); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + + while (bis.available() > 0) { + caCert = (X509Certificate) cf.generateCertificate(bis); + } + + // load client certificate + bis = new BufferedInputStream(crtFile); + X509Certificate cert = null; + while (bis.available() > 0) { + cert = (X509Certificate) cf.generateCertificate(bis); + } + + // load client private cert + PEMParser pemParser = new PEMParser(new InputStreamReader(keyFile)); + Object object = pemParser.readObject(); + JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); + KeyPair key = converter.getKeyPair((PEMKeyPair) object); + + KeyStore caKs = KeyStore.getInstance(KeyStore.getDefaultType()); + caKs.load(null, null); + caKs.setCertificateEntry("cert-certificate", caCert); + TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(caKs); + + KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); + ks.load(null, null); + ks.setCertificateEntry("certificate", cert); + ks.setKeyEntry("private-cert", key.getPrivate(), password.toCharArray(), + new java.security.cert.Certificate[]{cert}); + KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); + kmf.init(ks, password.toCharArray()); + + SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); + sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + + return sslContext.getSocketFactory(); + } + + +} diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/UUIDUtil.java b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/UUIDUtil.java new file mode 100644 index 0000000..2f33557 --- /dev/null +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/java/com/rehome/adminclientappmqttserver/utils/UUIDUtil.java @@ -0,0 +1,9 @@ +package com.rehome.adminclientappmqttserver.utils; + +import java.util.UUID; + +public class UUIDUtil { + public static String getUUID() { + return UUID.randomUUID().toString(); + } +} diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/application.yml b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/application.yml index 8cef587..ca1a9f0 100644 --- a/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/application.yml +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/application.yml @@ -43,8 +43,8 @@ spring: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver #com.mysql.jdbc.Driver # 8.0 com.mysql.cj.jdbc.Driver #url: jdbc:mysql://129.211.119.207:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true - #url: jdbc:mysql://192.168.2.18:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true - url: jdbc:mysql://127.0.0.1:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true + url: jdbc:mysql://192.168.2.18:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true + #url: jdbc:mysql://127.0.0.1:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true #url: jdbc:mysql://192.168.1.21:3306/appserver?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true username: root password: Skyinno251, diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.crt b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.crt new file mode 100644 index 0000000000000000000000000000000000000000..5cb20e1244acbff2b1a0eebeaab5ee8122756dc5 GIT binary patch literal 870 zcmXqLVoow>V)9}VDV6QE>yEhQRXT@P+31aNnaS&aiw$_$IJMe5+P?ELGIFyr7&NvR zavN~6F^96S2{SqS844K)fH)jHobI8He(o;*e(r|+Kutg~b{@7Uk5CUsPnZA~4_lC{ zhrh2YOn@6*fEg|zYak7`n3GYAFQYuo#MH>a(9BpbIX~AxL7dmf#K6SB(7?jb(#R}I zg5SsxC}3=00TnO^!RgM@#Ju#B{JeCSD?skdD9uRBgb4uMS(KWQpPLF306Hr-3kuBSL?J^WHs|i!~1}KEczS zA{>yvm%kzQd-v8i7Bal&`ahOwGsdN^;dp#4Yg8JdN~@)jpv7&PR}cN_V=;rM2TX-E3e+DZBuaNoVLyLq39(e^XIF2gQu?F zetW-Cf8^GExhapO-UkX+nI^5A9dFWM>0BkqzQd?p(JN%d`IJ7NxgTu4&)@B}>4#Y! zp8{7}$zqdI)9QHJ(2bJk?sO*YtDNPm_lD*4?<{|P(}EuBsCI{>z8SYp$z2iN%;Q(~ zI_{avq_ZK8!g=BA{4bu!-*PQGrqFk3$JL(RFGmhDF*7nSB8Lz#%>YA)k%5)hJxXjr z+#>dzjamM^$_G6}J2qEuzi?}|yV^S*Vben%=jR`p`Gj?EX6&zk#H$QEZKXeiUoQW# z&r&PqZiS=fEr*{G{28|n?)~=b)^4@)s)wTQ-95jk_t3Z9%?fYoHO*s==l$@#aEq1G ziB;~;>*+i}pW=Kwf81z1bK$$etU0OmFPTq8I!Ml*cl-2JrLb3PLjN54zChyc){PgN z@09BuEjf{2U~|yFZlln(T@$B^cQmv|HKuv}Sbt5d_-&y2Lr=Aw0wXo;qT*%xHwAdV zWSUI#h`uv-($6HUM(K0)xe&O^iy&LCDC;z}&>h&tTBR$i>ve$jERyH86QWtNmfd z4}9}gr#k(9bGU(Vt?d?r1G`cf?bw#A?V6r@`%%;B$BkXqb6Sn3OgS(waO0-bh$lz? zZ(MamB5zw##tduy!>v{fQJZ7qXPSr?a^+%fl^wqttR%J^uBq zM~eIMrxRZUBvjHp<~2X7{xiwx;ngW?pLs7o+`a0@oD+YwcTQZCbnNIi&cl0G`v0Dt zAo!>C?+T+onynY6sHp#`zO7Ouar}O@iQbyscXycme_Y>{8O?q5Y}JK?;N!8UM4e8ZZMXG8C1|-2E5*tYg#K8H$#6R;$+Ro$YG$ms|d| zmGkbNx+Tu0_phyNTA(ylDanJ-Pb@`|@w? zmCAcoU-_q?C$3@?Z+|yU#9+ap1Z6Fu2Q@D|KHt^VXxSJj>)B@%BH6ikZ)e;J-9Crf z^+&5FJb(Cc`}VB5%~CP7KIfO&oS^upvx@od zb+`Pi>Gx(nsj>Tz+~@9 - ${project.artifactId}-master + + ${project.artifactId}-slave + org.springframework.boot diff --git a/SpringCloud-Example/eureka-server/src/main/resources/application.properties b/SpringCloud-Example/eureka-server/src/main/resources/application.properties index 4b0a55b..3da855a 100644 --- a/SpringCloud-Example/eureka-server/src/main/resources/application.properties +++ b/SpringCloud-Example/eureka-server/src/main/resources/application.properties @@ -1,5 +1,5 @@ -spring.profiles.active=master -#spring.profiles.active=slave +#spring.profiles.active=master +spring.profiles.active=slave eureka.environment=prod spring.application.name=eureka-server