ActiveMQ保护队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveMQ保护队列相关的知识,希望对你有一定的参考价值。

我正在寻找一种机制来保护ActiveMQ上的队列访问。我们使用Spring JMS将JMS消息发送到ActiveMQ队列。现在队列在公司内部公开,我们不希望任何人访问这些队列并发布和接收来自他们的消息。相反,我们希望通过身份验证机制来保护它们 - preferbaly一个用户名/密码机制。关于相同的任何提示都将非常有帮助。

ActiveMQ - 5.5.1 Spring 3.X

答案

身份验证位于代理级别而非队列中。您可以像对数据库服务器进行身份验证一样对代理进行身份验证。

就像数据库中的表一样,您可以为每个队列/主题分配用户和组的权限(用户FOO可以接收有关主题A的消息,用户BAR可以发布到主题A等)。

不幸的是,这并不像其他系统那样直截了当。数据库支持这种任务,AMQ只提供一个API,插件可用于配置安全性。

这是一个示例配置:https://github.com/apache/activemq/blob/master/activemq-unit-tests/src/test/resources/org/apache/activemq/security/jaas-broker.xml

这个的login.config:https://github.com/apache/activemq/blob/master/activemq-unit-tests/src/test/resources/login.config

基本单元测试:https://github.com/apache/activemq/blob/master/activemq-unit-tests/src/test/java/org/apache/activemq/security/XBeanSecurityTest.java

这应该让你开始。

另一答案

如果你还没有,请看看这里:ActiveMQ authorization

正如Aaron Digulla所提到的,您可以直接在xml配置中管理您的授权,或者您可以通过一些调整在Java级别执行某些操作。我们对现有授权插件进行了一些装饰,允许我们从文件中动态加载授权和组 - 如果您不想要任何停机时间,这一点非常重要。

我们对ActiveMQAuthenticationPlugin应用了相同的技术,允许我们加密我们的用户/密码文件。

以上是关于ActiveMQ保护队列的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ - 以编程方式删除队列

activemq学习总结 (转)Java消息队列--ActiveMq 实战

消息队列ActiveMQ初步

没有消费时如何丢弃队列消息?(ActiveMQ)

ActiveMQ_点对点队列

ActiveMQ - 通过命令行删除/清除所有队列