ActiveMQ保护队列

时间:2013-03-27 16:51:55

标签: security jms activemq spring-jms

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

ActiveMQ - 5.5.1 Spring 3.X

2 个答案:

答案 0 :(得分: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

这应该让你开始。

答案 1 :(得分:0)

如果您还没有,请查看此处:ActiveMQ authorization

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

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