【问题标题】:activemq network of brokers missing username or password缺少用户名或密码的代理的 activemq 网络
【发布时间】:2020-10-30 21:29:29
【问题描述】:

我正在尝试在 activemq 中设置代理网络,我当前的设置是有两个代理,每个代理在不同的虚拟机上运行。我的配置是:

<networkConnectors>
     <networkConnector
        name="Q:broker1->broker2"
        uri="static:(tcp://10.10.10.12:61612)"
        duplex="false"
        decreaseNetworkConsumerPriority="true"
        networkTTL="2"
        dynamicOnly="true"
        userName="activemq"
        password="password">
        <excludedDestinations>
              <topic physicalName=">" />
        </excludedDestinations>
     </networkConnector>
 </networkConnectors>

我在 broker1 上启动 activemq 时遇到此错误:

2016-11-01 17:49:18,571 | INFO  | Establishing network connection from vm://localhost?create=false&async=false to tcp://10.10.10.12:61612 | org.apache.activemq.network.DiscoveryNetworkConnector | ActiveMQ Task-1
2016-11-01 17:49:18,572 | INFO  | Connector vm://localhost started | org.apache.activemq.broker.TransportConnector | ActiveMQ Task-1
2016-11-01 17:49:18,578 | WARN  | Failed to add Connection localhost->localhost-34161-1478036807089-20:1 due to java.lang.SecurityException: User name [activemq] or password is invalid. | org.apache.activemq.broker.TransportConnection | triggerStartAsyncNetworkBridgeCreation: remoteBroker=tcp:///10.10.10.12:61612@43981, localBroker= vm://localhost#18
2016-11-01 17:49:18,580 | WARN  | Security Error occurred on connection to: vm://localhost#18, User name [activemq] or password is invalid. | org.apache.activemq.broker.TransportConnection.Service | triggerStartAsyncNetworkBridgeCreation: remoteBroker=tcp:///10.10.10.12:61612@43981, localBroker= vm://localhost#18
2016-11-01 17:49:18,580 | INFO  | Network connection between vm://localhost#18 and tcp:///10.10.10.12:61612@43981 shutdown due to a local error: java.lang.SecurityException: User name [activemq] or password is invalid. | org.apache.activemq.network.DemandForwardingBridgeSupport | triggerStartAsyncNetworkBridgeCreation: remoteBroker=tcp:///10.10.10.12:61612@43981, localBroker= vm://localhost#18
2016-11-01 17:49:18,583 | INFO  | Connector vm://localhost stopped | org.apache.activemq.broker.TransportConnector | ActiveMQ BrokerService[localhost] Task-8
2016-11-01 17:49:18,584 | INFO  | localhost bridge to localhost stopped | org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ BrokerService[localhost] Task-8
2016-11-01 17:49:20,580 | INFO  | Stopping vm://localhost#18 because Failed with SecurityException: User name [activemq] or password is invalid. | org.apache.activemq.broker.TransportConnection | ActiveMQ BrokerService[localhost] Task-5

我在 broker2 activemq.xml 中设置了 activemq 用户,如下所示:

<simpleAuthenticationPlugin>
                    <users>
                        <authenticationUser username="activemq" password="${activemq.password}"
                            groups="admins"/>

并且用户 activemq 在 credentials-enc.properties 文件中定义,例如:

activemq.password=password 

为什么 broker1 可以与 broker2 建立连接?我在这里缺少什么?

【问题讨论】:

    标签: activemq


    【解决方案1】:

    像这样添加用户名和密码属性:

    <networkConnector .. userName="admin" password="admin".. >
    

    Network Connector Properties

    第 2 部分:

    您的 activemq.xml 文件中是否有一个属性占位符 bean?您需要它才能使宏替换起作用。否则,代理可能会认为密码实际上是下面带有 $ 符号和 { } 大括号的文本。

    ${activemq.password}
    

    【讨论】:

    • 感谢马特的回复。请查看我更新后的问题
    猜你喜欢
    • 2012-01-04
    • 2010-11-30
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多