1

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

ActiveMQ - 5.5.1 Spring 3.X

4

2 回答 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

那应该让你开始。

于 2017-10-16T12:25:25.850 回答
0

如果您还没有,请看这里:ActiveMQ 授权

正如 Aaron Digulla 所提到的,您可以直接在 xml 配置中管理您的授权,或者您可以在 java 级别进行一些调整。我们稍微修饰了现有的授权插件,它允许我们从文件中动态加载授权和组——如果您不希望任何停机时间,这很重要。

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

于 2018-02-28T16:55:18.050 回答