如何在JMS中通过用户名/密码建立连接?
为JMS连接添加用户名/密码认证
你可以通过两种方式给ActiveMQ的JMS连接添加用户名和密码认证:
方式一:构造连接工厂时传入认证信息
直接在创建ActiveMQQueueConnectionFactory时,把用户名、密码和Broker地址一起传入:
public static QueueSession getQueueSession(String urlBroker, String username, String password) throws JMSException { // 传入用户名、密码和Broker地址初始化连接工厂 QueueConnectionFactory connectionFactory = new ActiveMQQueueConnectionFactory(username, password, "tcp://" + urlBroker); QueueConnection connection = connectionFactory.createQueueConnection(); return connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); }
方式二:创建连接时传入认证信息
保持连接工厂的初始化逻辑不变,在调用createQueueConnection方法时传入用户名和密码:
public static QueueSession getQueueSession(String urlBroker, String username, String password) throws JMSException { QueueConnectionFactory connectionFactory = new ActiveMQQueueConnectionFactory("tcp://" + urlBroker); // 创建连接时指定用户名和密码 QueueConnection connection = connectionFactory.createQueueConnection(username, password); return connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); }
两种方式都能实现认证,按需选择即可。注意要确保传入的用户名和密码与ActiveMQ Broker端配置的认证信息一致,否则会连接失败。
内容的提问来源于stack exchange,提问作者user21871375
相关产品推荐
相关产品推荐

