重载artemis中由服务器动态验证的用户ID的资源限制设置

时间:2019-12-13 21:51:43

标签: activemq-artemis

我不想将用户信息存储在artemis服务器中,因为我的身份验证将基于KDF。因此,将基于客户端的某些密钥来动态验证用户。验证后,我想根据某个角色为用户设置max-connectionsmax-queues

broker.xml

<resource-limit-settings>
   <resource-limit-setting match="myUser">
      <max-connections>5</max-connections>
      <max-queues>3</max-queues>
   </resource-limit-setting>
</resource-limit-settings>

如何在运行时传递UserId(“ myUser”),以便可以为每个经过身份验证的用户设置资源限制设置?

来自Artemis documentation

  

与地址设置中的匹配不同,此匹配不使用任何通配符语法。这是将限制与用户进行简单的1:1映射。

1 个答案:

答案 0 :(得分:0)

您引用的文档进行了总结。您不能基于角色设置限制。您只能根据用户设置限制。您要为其设置限制的每个用户都必须在broker.xml中进行枚举。与其他设置(例如address-settingssecurity-settings等)不同,没有用于资源限制的管理API,因此无法在运行时添加/删除/更改它们。

当然,这里的功能可以增强。 ActiveMQ Artemis是一个开放源代码的Apache项目,欢迎任何贡献。