使用ActiveMQ JMS连接的用户名和密码

Muh*_*riq 7 java activemq-classic jms

Apache ActiveMQ使用用户名和密码创建安全连接.

InitialContext initCtx = new InitialContext();
javax.jms.ConnectionFactory qcf = (javax.jms.ConnectionFactory) initCtx.lookup(factoryName);
Connection connection = qcf.createConnection(userName, password);
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到这些凭据.这些用户名和密码是否在任何ActiveMQ配置文件中配置?

hsc*_*hne 7

回答你的问题:确实是,以及定义凭据的文件的名称activemq.xml.它可以在confActiveMQ安装目录中找到,例如C:\Program Files (x86)\apache-activemq-5.10.0\conf.

现在,在这个网站上有关于如何配置ActiveMQ以使用简单身份验证或JAAS的相当详细的说明,但我会给你一个快速的概述和一些提示:

  • 必须在plugins上述XML文件的部分中插入以下所有内容.

  • 用于SimpleAuthentication将用户"添加"到组中,例如

        <simpleAuthenticationPlugin anonymousAccessAllowed="true">
            <users>
                <authenticationUser username="system" password="system" groups="users,admins"/>
                <authenticationUser username="admin" password="admin" groups="users,admins"/>
                <authenticationUser username="user" password="user" groups="users"/>
                <authenticationUser username="guest" password="guest" groups="guests"/>
            </users>
        </simpleAuthenticationPlugin>
    
    Run Code Online (Sandbox Code Playgroud)
  • 使用AuthorizationPlugin配置哪些组可以访问哪些队列和主题.

  • 如果您打算使用,请SimpleAuthentication确保您<jaasAuthenticationPlugin configuration="activemq-domain" />的活动插件中没有.以防您计划从我之前提到的页面中复制一个样本.

  • 您可能希望启用匿名访问.为此,请将相应的属性添加到SimpleAuthenticatoinPlugin节点.完成后,您可以在创建连接时无需提供用户名和密码即可连接到队列.


Alo*_*rew 0

您是否尝试在不提供用户名和密码的情况下进行连接,默认情况下您应该能够做到这一点。

ConnectionFactory connectionFactoryProd = new ActiveMQConnectionFactory("failover://tcp://yourServerWhereActiveMqIs:61616");
Connection connectionProd = connectionFactoryProd.createConnection();
connectionProd.start();
Run Code Online (Sandbox Code Playgroud)