【问题标题】:Disable wildcard subscriptions in ActiveMQ在 ActiveMQ 中禁用通配符订阅
【发布时间】:2020-04-24 21:38:41
【问题描述】:

是否可以在 ActiveMQ 5(经典)中禁止主题订阅通配符?

例如订阅> 会将所有消息广播给所有消费者,即使消费者不应该能够订阅所有主题(甚至不知道所有主题)。

我已经尝试使用<authorizationPlugin> 创建<authorizationEntries>,但无法禁止通配符订阅。

您有什么想法如何为特定/所有用户完全通配符订阅或消息转发到通配符?

【问题讨论】:

  • 你想错了。客户可以订阅他们想要的任何内容,您可以通过提供 ACL 中允许的内容的白名单来控制实际交付给他们的内容
  • @hardillb 是的,我考虑过这一点,但据我所知,没有用于动态添加新用户的 API,因此我必须在多达 50 万个客户端之间共享凭据。
  • ActiveMQ 支持用于用户身份验证/授权的 JAAS 插件,因此您应该能够轻松地动态添加/删除用户和 ACL 条目。 activemq.apache.org/security p.s.共享凭据是一个非常糟糕的主意

标签: activemq messagebroker


【解决方案1】:

正如 cmets 中所说,您从错误的方向解决此问题。与其尝试禁用通配符订阅,正确的方法是限制实际传递的主题,而不管订阅的是什么。

这是通过为每个用户设置适当的 ACL 来完成的(为 500k 客户端重复使用相同的凭据是一个非常糟糕的主意)。

ActiveMQ 使用基于插件的系统来提供基于称为 JAAS 的 Java 标准的身份验证和授权控制。使用 JAAS,您可以将几乎任何存储机制(例如数据库、LDAP 等)插入 ActiveMQ,以存储您的用户/密码详细信息以及他们可以访问的主题的 ACL。 JAAS 与 ActiveMQ 配合使用的详细信息,请参见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 2016-01-14
    • 2015-02-13
    • 2017-01-24
    • 2015-08-24
    • 2020-02-23
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多