TRX vor 1 Jahr
Ursprung
Commit
6d52b7d9f4

+ 6 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/util/CommonUtil.java

@@ -2,6 +2,7 @@ package com.zhongshu.iot.server.core.util;
 
 import com.beust.jcommander.internal.Lists;
 import com.zhongshu.iot.client.utils.ITree;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.bson.types.Decimal128;
 import org.springframework.data.domain.Page;
@@ -32,6 +33,11 @@ public class CommonUtil {
         return str.toString();
     }
 
+    public static String generateRandomString(int count) {
+        return RandomStringUtils.randomAlphabetic(count).toLowerCase();
+    }
+
+
     /**
      * 生产UUID
      *

+ 1 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/util/mqtt/MqttTopicUtils.java

@@ -41,7 +41,7 @@ public class MqttTopicUtils {
      * @return
      */
     public static String buildDeviceAllTopic(String deviceId) {
-        return String.format("%s/device/%s/#", version, deviceId);
+        return String.format("/%s/device/%s/#", version, deviceId);
     }
 
     /**

+ 44 - 14
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/util/test/TestAddUser.java

@@ -1,10 +1,13 @@
 package com.zhongshu.iot.server.core.util.test;
 
+import com.zhongshu.iot.server.core.util.CommonUtil;
+import com.zhongshu.iot.server.core.util.mqtt.MqttTopicUtils;
 import lombok.Cleanup;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl;
 import org.apache.activemq.artemis.api.core.management.ObjectNameBuilder;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StopWatch;
 
 import javax.management.MBeanServerConnection;
 import javax.management.MBeanServerInvocationHandler;
@@ -23,31 +26,58 @@ public class TestAddUser {
     public static void main(String[] args) {
         try {
             log.info("-------------------- 开始 --------------------------");
-            JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://192.168.0.106:1098/jmxrmi");
+            JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://192.168.32.107:1098/jmxrmi");
             @Cleanup JMXConnector connector = JMXConnectorFactory.connect(url, null);
             connector.connect();
             System.out.println("连接成功..............");
             MBeanServerConnection connection = connector.getMBeanServerConnection();
 
-            ObjectName addressObjectName = ObjectNameBuilder.create("org.apache.activemq.artemis",
-                    "broke1").getActiveMQServerObjectName();
+            ObjectName addressObjectName = ObjectNameBuilder.create("org.apache.activemq.artemis", "broke1").getActiveMQServerObjectName();
 
-            ActiveMQServerControl addressControl = MBeanServerInvocationHandler.newProxyInstance(connection,
-                    addressObjectName, ActiveMQServerControl.class, false);
-//            // 查询用户 可以筛选特定的名称
-            String userListStr = addressControl.listUser("device221");
+            ActiveMQServerControl addressControl = MBeanServerInvocationHandler.newProxyInstance(connection, addressObjectName, ActiveMQServerControl.class, false);
+
+
+            // 查询用户 可以筛选特定的名称
+            String userListStr = addressControl.listUser("device2");
             log.info("userListStr: {}", userListStr);
             if (StringUtils.isNotEmpty(userListStr)) {
                 // 如果不存在用户会报错
 //                addressControl.removeUser("device1");
             }
-            // 添加用户 如果存在会报错
-            addressControl.addUser("device2", "trx", "trx", false);
-            // 删除用户 如果不存在会报错
-//            addressControl.removeUser("device1");
-            log.info("添加用户成功1....");
-            log.info("users: {}", addressControl.listUser(null));
-            connector.close();
+            StopWatch stopWatch = new StopWatch();
+
+            stopWatch.start("开始添加用户");
+            for (int i = 0; i < 100; i++) {
+                String name = "mqttUser" + i;
+                try {
+                    addressControl.removeUser(name);
+                }catch (Exception e) {
+                }
+//                String passWord = CommonUtil.generateRandomString(16);
+                String roleName = name;
+
+                String passWord = name;
+//                String roleName = "amq";
+                addressControl.addUser(name, passWord, roleName, true);
+
+                String addressMatch = MqttTopicUtils.buildDeviceAllTopic(name);
+//                addressControl.removeSecuritySettings(MqttTopicUtils.buildDeviceAllTopic(name));
+
+                log.info("addUser: {} {} ", name, addressMatch);
+                addressControl.addSecuritySettings(
+                        addressMatch,
+                        roleName, roleName, roleName, roleName, roleName, roleName, roleName,
+                        roleName, roleName, roleName);
+            }
+            stopWatch.stop();
+            log.info("耗时:{}", stopWatch.prettyPrint());
+
+//            // 添加用户 如果存在会报错
+//            addressControl.addUser("device2", "trx", "trx", false);
+//            // 删除用户 如果不存在会报错
+////            addressControl.removeUser("device1");
+//            log.info("添加用户成功1....");
+//            log.info("users: {}", addressControl.listUser(null));
             log.info("-------------------- 结束 --------------------------");
         } catch (Exception e) {
             e.printStackTrace();