|
|
@@ -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();
|