ActiveMQ保护队列

问题描述 投票:1回答:2

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

ActiveMQ - 5.5.1 Spring 3.X

security jms activemq spring-jms
2个回答
2
投票

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

就像数据库中的表一样,您可以为每个队列/主题分配用户和组的权限(用户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

这应该让你开始。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.