From a03799e08e7cc9b984b89cd125fd01e31f78486d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 02 十二月 2021 09:44:20 +0800
Subject: [PATCH] 2021-12-02 1.增加网关认证错误

---
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 47 insertions(+), 11 deletions(-)

diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
index b671bb6..5fb4298 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
@@ -4,6 +4,7 @@
 
 import com.hdl.sdk.common.config.TopicConstant;
 import com.hdl.sdk.common.utils.SPUtils;
+import com.hdl.sdk.connect.bean.response.GatewaySearchBean;
 
 
 /**
@@ -12,19 +13,22 @@
  * @Description : HDLLinkConfig
  */
 public class HDLLinkConfig {
-    private static final String Authenticate_LS_KEY = "auth_ls_key";
+    private static final String AUTHENTICATE_LS_KEY = "auth_ls_key";
     private static final String AUTHENTICATE_GATEWAYID_KEY = "auth_gatewayid_key";
     private static final String AUTHENTICATE_IPADDRESS_KEY = "auth_ipaddress_key";
+    private static final String AUTHENTICATE_IS_LS_KEY = "auth_isls_key";
 
     private String localSecret;//鏈湴鍔犲瘑瀵嗛挜
     private String gatewayId;
     private String ipAddress;
     private boolean isLocalEncrypt;//缃戝叧鏄惁闇�瑕佸姞瀵嗛�氳
+    private GatewaySearchBean currentGateway;//褰撳墠缃戝叧
 
     /**
      * instance
      */
     private volatile static HDLLinkConfig instance;
+
     /**
      * getInstance
      *
@@ -49,22 +53,26 @@
         this.gatewayId = "";
         this.ipAddress = "";
         this.localSecret = "";
-        SPUtils.remove(Authenticate_LS_KEY);
+        this.isLocalEncrypt = false;
+        SPUtils.remove(AUTHENTICATE_LS_KEY);
         SPUtils.remove(AUTHENTICATE_GATEWAYID_KEY);
         SPUtils.remove(AUTHENTICATE_IPADDRESS_KEY);
+        SPUtils.remove(AUTHENTICATE_IS_LS_KEY);
     }
 
     /**
      * 鍔犺浇缂撳瓨
      */
-    void loadConfig(){
-        localSecret = SPUtils.getString(Authenticate_LS_KEY, "");
+    void loadConfig() {
+        localSecret = SPUtils.getString(AUTHENTICATE_LS_KEY, "");
         gatewayId = SPUtils.getString(AUTHENTICATE_GATEWAYID_KEY, "");
         ipAddress = SPUtils.getString(AUTHENTICATE_IPADDRESS_KEY, "");
+        isLocalEncrypt = SPUtils.getBoolean(AUTHENTICATE_IS_LS_KEY, false);
     }
 
     /**
      * 淇濆瓨閰嶇疆
+     *
      * @param localSecret
      * @param gatewayId
      * @param ipAddress
@@ -73,23 +81,26 @@
         this.localSecret = localSecret;
         this.gatewayId = gatewayId;
         this.ipAddress = ipAddress;
-        SPUtils.put(Authenticate_LS_KEY, localSecret);
+        SPUtils.put(AUTHENTICATE_LS_KEY, localSecret);
         SPUtils.put(AUTHENTICATE_GATEWAYID_KEY, gatewayId);
         SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress);
     }
 
     /**
      * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃
+     *
      * @return
      */
-    public boolean checkIfCertified(){
-        //localSecret涓嶄负绌哄苟涓旈暱搴︾瓑浜�16
-        return !TextUtils.isEmpty(localSecret) && localSecret.length() == 16;
+    public boolean checkIfCertified() {
+        //localSecret涓嶄负绌哄苟涓旈暱搴︾瓑浜�16 缃戝叧id涓嶈兘涓虹┖
+        return !TextUtils.isEmpty(localSecret)
+                && localSecret.length() == 16
+                && !TextUtils.isEmpty(gatewayId);
     }
 
     public void setLocalSecret(String localSecret) {
         this.localSecret = localSecret;
-        SPUtils.put(Authenticate_LS_KEY, localSecret);
+        SPUtils.put(AUTHENTICATE_LS_KEY, localSecret);
     }
 
     public String getLocalSecret() {
@@ -110,14 +121,31 @@
 
     public void setLocalEncrypt(boolean localEncrypt) {
         isLocalEncrypt = localEncrypt;
+        SPUtils.put(AUTHENTICATE_IS_LS_KEY, isLocalEncrypt);
+    }
+
+    public GatewaySearchBean getCurrentGateway() {
+        return currentGateway;
+    }
+
+    public void setCurrentGateway(GatewaySearchBean currentGateway) {
+        this.currentGateway = currentGateway;
+        if (this.currentGateway != null && !TextUtils.isEmpty(this.currentGateway.getIp_address())) {
+            if (!this.ipAddress.equals(this.currentGateway.getIp_address())) {
+                //濡傛灉IP鍦板潃鏈夊彉鍖栧垯鏇存柊
+                this.ipAddress = this.currentGateway.getIp_address();
+                SPUtils.put(AUTHENTICATE_IPADDRESS_KEY, ipAddress);
+            }
+        }
     }
 
     /**
      * 鍒ゆ柇褰撳墠涓婚鏁版嵁鏄惁闇�瑕佸姞瀵�
+     *
      * @param topicStr 褰撳墠涓婚
      * @return
      */
-    public boolean ifNeedEncrypt(String topicStr){
+    public boolean ifNeedEncrypt(String topicStr) {
         //杩囨护鐩稿叧闇�瑕佸姞瀵嗙殑涓婚
         return (!topicStr.contains(TopicConstant.GATEWAY_AUTH_BROADCAST) //缃戝叧骞挎挱鍏ョ綉鎸囦护
                 && !topicStr.contains(TopicConstant.DEIVCE_AUTH_REQUEST) //鍏ョ綉璁よ瘉
@@ -126,6 +154,14 @@
         );
     }
 
-
+    /**
+     * 鎷兼帴缃戝叧ID鑾峰彇瀹屾暣鐨勪富棰�
+     *
+     * @param topicStr
+     * @return
+     */
+    public String getFullTopic(String topicStr) {
+        return String.format(topicStr, gatewayId);
+    }
 
 }

--
Gitblit v1.8.0