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 0000000..5cb20e1 Binary files /dev/null and b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.crt differ diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.key b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.key new file mode 100644 index 0000000..cabb045 --- /dev/null +++ b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/client.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEogIBAAKCAQEApkLWaF5mqX/9Qv0PiFgvsEO9vNNzKcGjyAyLZBNQb70PgF33 +i7XsOBwNzo/xdisBXmWsCOPWVM60MUIGT4v7iCNueWQlMOsYYNxV47EV3ZclZbz4 +Ji5sKKczn1U1l25w5v3jNZEYcxHU6uwmtiBFCZa2SeEV0jI356qNU5Wvt9u/Io9Z +tb5tZOMa71ERejViqZtfNIg5Q3oRB7gyhyFKVKjPZI5MnfA895+7SrL4Nm4OIApm +dKM0dTV7Xz1VsRnO3IlivnmaQy7sBMv7ak8vNXCMO1qHQGKOmNrKHtQTswxOdute +5kSSzVRBE25Xrk/RyG+01mtccU2liNWMjfTEwwIDAQABAoIBAEkt9g1uL6W/jgvk +MugCWMsupd7s+y2P67TrwJbF4YutHZuUwJaf9l8kCfe3Z8JpX2rbOYOYNQiTCsD7 +nKd6p7XeUovfxnbno41OrgdQNJ2aH33OVTMJD9Y88f3ZlYMXu14Qtecn/Cj52kuk +sc1MGtcDnSybg+1G6VBww0/c/MDhpHSEevJ8LZaxTOyNPvt4qVJZKtArBGnFPh81 +VKiBQy6Aumm4k9gRkrVbAR0xo9DiOYE0hfga04J3EwYdI2uhGvgew2zeRVSdsN81 +TN8mNJ/BTra2Yqf4bp22IhNT6G9AgfjqTb1mDfaQHkN5SABgB8TE/HubJ4wH/Jn+ +ptVLR5ECgYEA0gzbolhfskVJ00eNs1ik6SKpBQwKz27OokNILfG5+BzLTK5kBYtU +jov9lSRz/PWHX+g7Do3ncdueSvHpBALaUcsxVsY1QoWcxQ8NLlZfcY1dm1Vuudzg +dy3Ccl7vKsoQBkI/an+3+ooiy/XX9pydt4/QfkmzCaAre0SuLavNWJcCgYEAyqG4 +DUf41LFQTDNTTUxcg924JDk6pxO3+4Qr98CSJz+6pICkTw3fy/cKOj1wFc1RA4/0 +DndiXBXnA0wnfPb2dktZ970cXofaIXMbpcteBSJC/Atqd8Mmcit+A21FTx5nI/dv +CGgmAj0j0Y7nX91+jos4l6/ihXskQQDfUYA2LrUCgYBqGOKLsxXLRyJOHPNfJqRN +uhsjmHyRYEfxQAjiZBnqUCkEN4YAIut4AQ/6WGpZ2G8jq3rBFD5WjXb8Jgrr4sEB +1Z+7U+ytCC4yfzLKOAiHo78nadS+/ulGaY+xE3C87UmAz8+WbKKyYznGSgxm3Z7w +jCzkzTco4oV0AzHzkbbsSwKBgDaOVgyVXSR+3Py3MO116s7CKmruUaFcSMPaMTBS +U8dnfCwASrzSIng6+jD2C7CDCBXqcy5V7FCYwQr9PQCDSZZN8VonO3UkJJGu+Tmp +SJYfRGOx+ydljntcxF/N0sRbji971hQwXlNp/LPWQutnqkRcrY8Blv6TSg6KWpYJ +7AylAoGAMp/nSsfpjnoYW+8KdC+iEZw66FjCg5HV11rWCUqj7gsgNOfCUhku826M +23SwZWWVQzOR5dJsmtUuzO1cXcpxKSpMdpVikB4TYFm4U1l5QZuSG+L2516IjwwJ +q96skUIZ649Tu1B5ecQLMPD0S/Hc8Guhcr31KGnisOQt/CbSA1w= +-----END RSA PRIVATE KEY----- diff --git a/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/my_root_ca.crt b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/my_root_ca.crt new file mode 100644 index 0000000..cc8f146 Binary files /dev/null and b/SpringCloud-Example/admin-client-appmqttserver/src/main/resources/sslHk/my_root_ca.crt differ diff --git a/SpringCloud-Example/eureka-server/pom.xml b/SpringCloud-Example/eureka-server/pom.xml index 4697b16..3200056 100644 --- a/SpringCloud-Example/eureka-server/pom.xml +++ b/SpringCloud-Example/eureka-server/pom.xml @@ -87,7 +87,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