当前位置: 首页 > 知识库问答 >
问题:

如何在artemis中验证用于代理连接的会话

谷梁振
2023-03-14

我试图在本地笔记本电脑上使用docker测试使用代理连接镜像两个Artemis服务器。

<addresses xmlns="urn:activemq:core">
  <address name="DLQ">
    <anycast>
       <queue name="DLQ" />
    </anycast>
  </address>
  <address name="ExpiryQueue">
    <anycast>
       <queue name="ExpiryQueue" />
    </anycast>
  </address>
  <address name="jms.queue.Sms0Lp"><anycast><queue name="jms.queue.Sms0Lp" /></anycast></address>
</addresses>
      <broker-connections>
         <amqp-connection uri="tcp://artemis-1-m:5672" name="DRMirror1M" user="artemis" password="artemis">
            <mirror message-acknowledgements="true"/>
         </amqp-connection>
      </broker-connections>

对着镜子说:

       <broker-connections>
         <amqp-connection uri="tcp://artemis-1:5672" name="DRMirror1" auto-start="false" user="artemis" password="artemis">
            <mirror message-acknowledgements="true"/>
         </amqp-connection>
      </broker-connections>

作为预防措施,我还在镜像上的端口61616接受器上设置了autostart=false;,以便客户端无法连接到它。

当我在管理控制台中查看时,我看到镜像队列一直在增长,似乎没有任何东西向另一边移动。当我将消息发送到队列时,它们不会显示在另一边的管理控制台中。

2021-03-15 01:32:37,316 INFO  [org.apache.activemq.artemis.protocol.amqp.logger] AMQ111003:
*******************************************************************************************************************************
Success on Server AMQP Connection DRMirror1M on artemis-1-m:5672 after 1 retries
*******************************************************************************************************************************

2021-03-15 01:32:37,379 WARN  [org.apache.activemq.artemis.core.server] AMQ222216: Security problem while authenticating: AMQ229031: Unable to validate user from artemis-1-m/172.19.0.3:5672. Username: null; SSL certificate subject DN: unavailable
2021-03-15 01:32:37,381 WARN  [org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler] AMQ229031: Unable to validate user from artemis-1-m/172.19.0.3:5672. Username: null; SSL certificate subject DN: unavailable: ActiveMQSecurityException[errorType=SECURITY_EXCEPTION message=AMQ229031: Unable to validate user from artemis-1-m/172.19.0.3:5672. Username: null; SSL certificate subject DN: unavailable]
        at org.apache.activemq.artemis.core.security.impl.SecurityStoreImpl.authenticate(SecurityStoreImpl.java:204) [artemis-server-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createSession(ActiveMQServerImpl.java:1679) [artemis-server-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.init(AMQPSessionCallback.java:210) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.AMQPSessionContext.initialize(AMQPSessionContext.java:81) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onLocalOpen(AMQPConnectionContext.java:567) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:47) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:564) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:359) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.flush(AMQPConnectionContext.java:234) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at org.apache.activemq.artemis.protocol.amqp.connect.AMQPBrokerConnection.lambda$doConnect$2(AMQPBrokerConnection.java:259) [artemis-amqp-protocol-2.17.0.jar:2.17.0]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) [netty-all-4.1.51.Final.jar:4.1.51.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) [netty-all-4.1.51.Final.jar:4.1.51.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384) [netty-all-4.1.51.Final.jar:4.1.51.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-all-4.1.51.Final.jar:4.1.51.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-all-4.1.51.Final.jar:4.1.51.Final]
        at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.17.0.jar:2.17.0]

共有1个答案

夏烨霖
2023-03-14

这个bug是https://issues.apache.org/jira/browse/artemis-3150的一部分。在您更新到2.18.0(在我写这个答案的时候还没有发布)之后,它应该可以工作。

您也许可以尝试从master中获取快照,或者从master中构建自己。

 类似资料:
  • 我得到一个异常:未找到ssl模式。 因此,我试图理解连接Artemis和AmazonMQ代理是否与连接Activemq和AmazonMQ代理相同(即通过更改broker.xml文件中的配置)?如果是,我需要对上面显示的配置进行哪些更改?

  • 我正在使用api示例中的示例Twilio java-sdk设置java Twilio连接。 对于通过web代理运行Twilio java-sdk有什么建议吗? 我使用的是apache http-client library 4.5.2

  • 我在artemis代理中添加了一个mqtt拦截器,以便拦截mqtt客户端连接: 我的客户端apache paho通过这个端口“WS://0.0.0.0:61614”连接到代理。 我的问题是只截获发布到主题的消息。 为什么不截获连接消息?

  • 我正在做jndi查找JBOSS AS. Code中配置的数据源,如下所示。 initialContext=新的initialContext(道具); dataSource=(dataSource)initialContext。查找(bundle.getString(“jndiName”); ource.get连接; 这段代码放在servlet的doPost中。我也很安全地打电话给你 联系关闭()

  • 下面是Qpid客户端的配置,使用Camel上下文连接Artemis Broker。 上下文文件正像预期的那样开始,但是在本例中,qpid客户机无法连接到Apache Artemis 2.14.0代理。 我所看到的只是消费者端的一些线程块。 common-context.xml 注意:在使用CAMEL2.20.0版本时,即使在所有上下文都得到的情况下,这个单个xml文件中也有两个camel上下文