ActiveMQ主题和安全性(或Apollo)

ActiveMQ主题和安全性(或Apollo),activemq,apollo,Activemq,Apollo,我对活动MQ是新手。我想知道在activemq(或Apollo)中是否可能出现以下情况 本质上,我有一个过程,将生成消息来启用或禁用特定站点。将消息(启用/禁用)发送到ActiveMQ时,根据消息的路由密钥,该消息可能有多个使用者。例如,如果消息要启用站点A,则路由密钥应为site.A.enable。和监视其站点的站点A队列将获得此消息以及监视所有启用/禁用消息的系统级处理器 现在,我认为这在使用主题的活动MQ中是可行的。SiteA将订阅站点的所有主题。A.*系统进程将订阅站点。*的所有主题。启

我对活动MQ是新手。我想知道在activemq(或Apollo)中是否可能出现以下情况

本质上,我有一个过程,将生成消息来启用或禁用特定站点。将消息(启用/禁用)发送到ActiveMQ时,根据消息的路由密钥,该消息可能有多个使用者。例如,如果消息要启用站点A,则路由密钥应为site.A.enable。和监视其站点的站点A队列将获得此消息以及监视所有启用/禁用消息的系统级处理器

现在,我认为这在使用主题的活动MQ中是可行的。SiteA将订阅
站点的所有主题。A.*
系统进程将订阅
站点。*的所有主题。启用
站点。*。禁用
在ActiveMQ中,这是最好的方法吗?

我还想确保siteA无法订阅
site.B.*
site.C.*
主题。他们只能从
站点A.*
接收消息。系统进程可以访问所有
站点。*
主题。我也认为这可以通过安全插头来实现。我只需要更新配置文件,为每个站点主题指定读/写/管理访问权限,并将其连接到一个用户/通行证或ldap,该用户/通行证或ldap将标识站点正在连接的内容对吗?如果站点是外部的,这是否有效?

我希望能够以最少的配置/设置添加新站点。当siteX上线时,发布者代码将与所有其他消息一样发布消息,但它将发布到主题
site.X.*
,该主题将在发布第一条消息时动态创建。消费者也可以从
site.X
开始动态消费

这就是我的问题所在我如何添加安全性,即site X只能“动态”访问site.X主题?我想我必须编辑配置文件并为新站点添加安全性内容。然后我必须停止/启动服务器以获取新设置。我可能可以在服务器上编辑配置,但我不认为我们可以在每次添加新站点时停止/启动

有没有更好的方法来实现这一点


谢谢

你所概述的是相当合理的。您需要为每个站点创建一个新的ActiveMQ用户,并使用授权插件在
站点上授予他们读写和管理权限。
。如果您使用的是简单的安全插件,其中身份验证和授权详细信息都在activemq.xml中,那么您需要在每次添加站点后重新启动activemq


如果希望自动执行此操作(不能真正动态执行),则需要使用LDAP版本的身份验证和授权插件,并具有一个脚本,在安装站点时将适当的凭据和权限写入LDAP。我猜您可能已经需要某种脚本化的步骤来向站点添加凭据,所以这应该不是什么大问题。我非常确定ActiveMQ应该在不重新启动的情况下进行更改,但我自己还没有尝试过,因此您需要对此进行测试。

您概述的内容非常合理。您需要为每个站点创建一个新的ActiveMQ用户,并使用授权插件在
站点上授予他们读写和管理权限。
。如果您使用的是简单的安全插件,其中身份验证和授权详细信息都在activemq.xml中,那么您需要在每次添加站点后重新启动activemq


如果希望自动执行此操作(不能真正动态执行),则需要使用LDAP版本的身份验证和授权插件,并具有一个脚本,在安装站点时将适当的凭据和权限写入LDAP。我猜您可能已经需要某种脚本化的步骤来向站点添加凭据,所以这应该不是什么大问题。我非常确定ActiveMQ应该在不重新启动的情况下进行更改,但我自己还没有尝试过,所以您需要对此进行测试。

谢谢。LDAP成功了。我花了几天的时间才将所有功能整合到一起(您需要jaasAuthenticationPlugin和CachedLDAP AuthorizationMap,这在规范中不是很清楚)。太棒了,感谢您的反馈!“我不知道CachedLDAP授权地图。@丹,我知道已经有一段时间了,但是你介意发布你的apollo.xml和login.config吗?”?我正在尝试做一些与你非常相似的事情,但我的设置有问题。谢谢,谢谢。LDAP成功了。我花了几天的时间才将所有功能整合到一起(您需要jaasAuthenticationPlugin和CachedLDAP AuthorizationMap,这在规范中不是很清楚)。太棒了,感谢您的反馈!“我不知道CachedLDAP授权地图。@丹,我知道已经有一段时间了,但是你介意发布你的apollo.xml和login.config吗?”?我正在尝试做一些与你非常相似的事情,但我的设置有问题。谢谢