Procházet zdrojové kódy

修复mqtt认证失败未断开问题

xiwa před 2 roky
rodič
revize
42c19b568e

+ 1 - 1
data/components/eabb131d-8fd1-43a8-88d9-a198abfd3d42/component.js

@@ -48,7 +48,7 @@ function register(payload){
   var dn=arr[1];
   var model=arr[2];
   var pwd=md5("xdkKUymrEGSCYWswqCvSPyRSFvH5j7CU"+auth.clientid);
-  if(pwd!=auth.password){
+  if(pwd.toLocaleLowerCase()!=auth.password.toLocaleLowerCase()){
 	throw new Error("incorrect password");
   }
   return {

+ 1 - 3
iot-components/iot-component-server/src/main/java/cc/iotkit/comps/DeviceMessageHandler.java

@@ -138,10 +138,8 @@ public class DeviceMessageHandler implements IMessageHandler {
                     return;
                 }
 
-            } catch (BizException e) {
-                throw e;
             } catch (Throwable e) {
-                throw new BizException("receive component message error", e);
+                log.error("receive component message error", e);
             }
             onResult.accept(null);
         });

+ 5 - 1
iot-components/iot-mqtt-component/src/main/java/cc/iotkit/comp/mqtt/MqttVerticle.java

@@ -77,10 +77,14 @@ public class MqttVerticle extends AbstractVerticle {
                     clientId, auth.getUsername(), auth.getPassword());
             try {
                 executor.onReceive(new HashMap<>(), "auth", authJson, (r) -> {
+                    if (r == null) {
+                        //认证失败
+                        endpoint.reject(MqttConnectReturnCode.CONNECTION_REFUSED_NOT_AUTHORIZED);
+                        return;
+                    }
                     //保存设备与连接关系
                     endpointMap.put(getEndpointKey(r), endpoint);
                 });
-
             } catch (Throwable e) {
                 log.error("auth failed", e);
                 endpoint.reject(MqttConnectReturnCode.CONNECTION_REFUSED_NOT_AUTHORIZED);