gpt4 book ai didi

java - ActiveMQ 5.15.9 安全

转载 作者:行者123 更新时间:2023-12-02 09:32:58 25 4
gpt4 key购买 nike

我目前正在使用部署在我们的测试服务器上的 ActiveMQ 5.15.9。我必须实现某种安全措施,以便任何人都无法访问内部队列。到目前为止,我所做的是将以下内容添加到 activemq.xml 中:

<plugins>
<simpleAuthenticationPlugin anonymousAccessAllowed ="false">
<users>
<authenticationUser
username="admin"
password="pass"
groups="admins,publishers,consumers" />
</users>
</simpleAuthenticationPlugin>
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic =">" write="producers" read="consumers" admin="admins" />
<authorizationEntry queue ="TEST.Q" write="producers" read="consumers" admin="admins" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
</plugins>

在我的 C# 上,这是访问队列的方式:

private static void SendNewMessageQueue(string text)
{
string queueName = "TEST";
Console.WriteLine($"Adding message to queue topic: {queueName}");
string brokerUri = $"activemq:tcp://localhost:61616"; // Default port
NMSConnectionFactory factory = new NMSConnectionFactory(brokerUri);
using (IConnection connection = factory.CreateConnection("admin","pass"))
{
connection.Start();
using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
using (IDestination dest = session.GetQueue(queueName))
using (IMessageProducer producer = session.CreateProducer(dest))
{
producer.DeliveryMode = MsgDeliveryMode.NonPersistent;
producer.Send(session.CreateTextMessage(text));
Console.WriteLine($"Sent {text} messages");
}
}
}

但是当我尝试运行我的代码时,出现以下错误:

User admin is not authorized to write to: queue://TEST

我需要这个,以便我可以将此 MQ 公开到 Internet,并通过仅允许拥有凭据的消费者/发布者来确保其安全。

最佳答案

您已经为名为 TEST.Q 的队列配置了安全性,但您正在尝试使用名为 TEST 的队列,但该队列不相同,因此您会收到此错误。如果您想公开测试前缀下的所有队列,那么它看起来更像是:

     <authorizationEntry queue ="TEST.>" write="producers" read="consumers" admin="admins" />

有一些安全配置的文档 here ,并且还了解 wildcard语法会有帮助。

正如您所提到的,通过互联网公开经纪人并不是一件容易的事,因此请谨慎行事。

关于java - ActiveMQ 5.15.9 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57800597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com