如何配置 ActiveMQ 以将“匿名”用户和角色分配给未经身份验证的用户

Posted

技术标签:

【中文标题】如何配置 ActiveMQ 以将“匿名”用户和角色分配给未经身份验证的用户【英文标题】:How to configure ActiveMQ to assign an 'anonymous' user and role to non-authenticated users 【发布时间】:2010-10-01 09:01:22 【问题描述】:

我希望设置一个 ActiveMQ 实例(主要作为 STOMP 服务器),它将为来自两种类型的客户端的请求提供服务:

    经过身份验证的用户可以读写主题 只能从主题中读取的未经身份验证的用户

到目前为止,我一直在使用 SimpleAuthenticationBroker,但无论如何我都看不到配置上述情况,也看不到代码中识别通配符以供用户通过身份验证的任何位。

如果我将服务器配置为使用身份验证代理,它将期望所有连接都进行身份验证,这是我不想要的。

我认为我能看到的唯一解决方案是提供我自己的实现来支持我需要的功能,但我很想找到一些内置到服务器中的方法。

【问题讨论】:

【参考方案1】:

此功能现在从 ActiveMQ 5.4 开始可用,正如我刚刚在搜索相同功能时发现的那样:http://activemq.apache.org/security.html

【讨论】:

【参考方案2】:

ActiveMQ 安全实现目前不支持此功能,但您始终可以定义一个无需密码即可连接且具有只读权限的用户。

您可以针对此未经身份验证的用户功能提出 Jira 增强请求 (https://issues.apache.org/activemq/browse/AMQ),并更好地为当前插件提供补丁。

【讨论】:

感谢您的回复-由于需要满足特定要求,我确实需要一种无需用户名和密码即可与匿名用户连接的方法,因此我将尝试自己的实现并提供一个补丁。【参考方案3】:

从 ActiveMQ 5.4 开始,您可以通过以下方式进行设置。找到

<plugins>
    ...
</plugins>

etc/activemq.xml 文件中的部分并对其进行编辑以包含 simpleAuthenticationPlugin,如下所示:

<simpleAuthenticationPlugin anonymousAccessAllowed="true" />

来源:http://activemq.apache.org/security.html

【讨论】:

以上是关于如何配置 ActiveMQ 以将“匿名”用户和角色分配给未经身份验证的用户的主要内容,如果未能解决你的问题,请参考以下文章

转载-ActiveMQ通过JAAS实现的安全机制

如何配置 Devise for Ruby on Rails 以将电子邮件和密码存储在用户模型之外的其他位置?

ActiveMQ中的安全机制 [转]

ftp web相关配置

ActiveMQ 用户名密码设置

如何在 MVC 5 中使用用户身份中的角色