TRX 1 yıl önce
ebeveyn
işleme
06c315e920

+ 1 - 4
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/controller/free/GateWayFreeController.java

@@ -53,10 +53,7 @@ public class GateWayFreeController {
             return resultContent;
         }
         log.info("-----------------------注册网关---------------------- {}", param);
-        gateWayInfoService.registerGateWay(param);
-
-        gateWayUserInfoService.initData();
-        return ResultContent.buildSuccess();
+        return gateWayInfoService.registerGateWay(param);
     }
 
     @Operation(summary = "网关绑定设备")

+ 7 - 11
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/mqtt/GateWayUserInfoService.java

@@ -497,10 +497,6 @@ public class GateWayUserInfoService {
                 ActiveMQServerControl addressControl = MBeanServerInvocationHandler.newProxyInstance(connection, addressObjectName, ActiveMQServerControl.class, false);
 
                 final String _roleName = MqttConfig.adminRoleName;
-                addressControl.addSecuritySettings("#", _roleName, _roleName, _roleName, _roleName,
-                        _roleName, _roleName, _roleName, _roleName,
-                        _roleName, _roleName);
-
                 for (GateWayInfo gateWayInfo : gateWayInfos) {
                     // 查询网关关联的用户
                     GateWay2User gateWay2User = gateWay2UserDao.findTopByGateWayInfo(gateWayInfo);
@@ -516,8 +512,13 @@ public class GateWayUserInfoService {
                     List<String> addressMatchs = JMXUtil.buildGateWayAddressMatch(gateWayInfo);
                     if (ObjectUtils.isNotEmpty(addressMatchs)) {
                         String userName = gateWayUserInfo.getUserName();
-                        String roleName = gateWayUserInfo.getRoleName();
+                        String tempRoleName = gateWayUserInfo.getRoleName();
+
+                        List<String> roleNames = new ArrayList<>();
+                        roleNames.add(tempRoleName);
+                        roleNames.add(_roleName);
 
+                        String roleName = String.join(",", roleNames);
                         List<GateWayMqttSecurity> securities = new ArrayList<>();
                         addressMatchs.stream().forEach(addressMatch -> {
                             gateWayMqttSecurityDao.deleteByMqttInfoAndAddressMatch(mqttInfo, addressMatch);
@@ -531,12 +532,7 @@ public class GateWayUserInfoService {
                             gateWayMqttSecurity.setMqttName(mqttInfo.getName());
                             gateWayMqttSecurity.setAddressMatch(addressMatch);
                             try {
-                                if (!roleName.equals(MqttConfig.adminRoleName)) {
-                                    addressControl.addSecuritySettings(addressMatch, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName);
-                                }
-                                addressControl.addSecuritySettings(addressMatch, _roleName, _roleName, _roleName, _roleName,
-                                        _roleName, _roleName, _roleName, _roleName,
-                                        _roleName, _roleName);
+                                addressControl.addSecuritySettings(addressMatch, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName, roleName);
                                 gateWayMqttSecurity.setIsSync(Boolean.TRUE);
                                 gateWayMqttSecurity.setMsg("同步成功");
                             } catch (Exception e) {