Artemis 授权从 ActiveMQ 迁移

Artemis Authorization migration from ActiveMQ

我的 ActiveMQ 使用如下所示的身份验证插件:

<plugins>
    <simpleAuthenticationPlugin>
        <users>
            <authenticationUser username="${activemq.username}" password="${activemq.password}"
                                groups="admins,publishers,consumers"/>
            <authenticationUser username="${admin.username}" password="${admin.password}"
                                groups="admins,publishers,consumers"/>
        </users>
    </simpleAuthenticationPlugin>
</plugins>

您能说说 ActiveMQ Artemis 应该如何处理这个问题吗?

the documentation 中所述,有许多方法可以在 ActiveMQ Artemis 中配置用户凭据。但是,默认且可能最简单的方法是通过代理实例的 etc 目录中的 artemis-users.propertiesartemis-roles.properties 文件。鉴于您的示例,您将按如下方式配置它们...

artemis-users.properties 中的每一行都遵循 <user> = <password> 的模式:

myUser = myPassword
myAdminUser = myAdminPassword

如果您愿意,可以对密码进行哈希处理,这样它们就不会出现在 plain-text 中。只需使用命令:artemis mask --hash <password>。您可以获取该命令的输出并将其封装在 ENC() 中,例如:

myUser = ENC(1024:D39BB78A7F474C285FA0F2B7AC1D8C4ABB4FAC3C6E49232CED3BDB489660E3CE:C9952A7B86EF49D38EF14F5FEDDC2BECC035E3C96F612302623AE2FDAF8D1DEEB298FEC4A07D6381557407C141D5756FF68C33AE88AE9934BAD01A82DC913E31)

可以在 the documentation 中找到更多详细信息。

artemis-roles.properties 中的每一行都遵循 <role> = <users> 的模式:

admins = myUser, myAdminUser
publishers = myUser, myAdminUser
consumers = myUser, myAdminUser

一旦代理 运行 这些文件可以直接修改或通过管理 API (例如通过网络控制台或 Jolokia)。还可以通过命令行中可用的 artemis user 命令公开管理。默认情况下,在运行时所做的修改会反映在代理中。