将用户添加到 Artemis 失败

Adding a user to Artemis fails

在向 ActiveMQ Artemis 添加新用户和角色方面需要一些帮助。版本是 2.16.

将 ActiveMQ Artemis 从 2.9.0 和 2.10.1 更新到 2.16 后,我们无法添加新用户。也许有更新的安全协议或其用法?

我们使用 PropertiesLoginModule。

activemq {
   org.apache.activemq.artemis.spi.core.security.jaas.PropertiesLoginModule requisite
       debug=false
       reload=true
       org.apache.activemq.jaas.properties.user="artemis-users.properties"
       org.apache.activemq.jaas.properties.role="artemis-roles.properties";
};

通常我们这样做是为了添加新用户

./artemis user add --user newUser --password newPassword --role Apps,newUser

但升级到 2.16 后,我们在 CLI 中遇到后续问题:
--user-command-user
--用户命令密码

我试过在这些上添加管理员 username/password。但仍然是相同的异常。

我收到以下安全异常:

Connection failed::AMQ229031: Unable to validate user from /<IPAddress>:48000. Username: newUser; SSL certificate subject DN: unavailable
Exception in thread "main" ActiveMQSecurityException[errorType=SECURITY_EXCEPTION message=AMQ229031: Unable to validate user from /<IPAddress>:48002. Username: newUser; SSL certificate subject DN: unavailable]
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:540)
        at org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.sendBlocking(ChannelImpl.java:434)
        at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.createSessionContext(ActiveMQClientProtocolManager.java:300)
        at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.createSessionContext(ActiveMQClientProtocolManager.java:249)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createSessionChannel(ClientSessionFactoryImpl.java:1401)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createSessionInternal(ClientSessionFactoryImpl.java:705)
        at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.createSession(ClientSessionFactoryImpl.java:316)
        at org.apache.activemq.artemis.cli.commands.AbstractAction.performCoreManagement(AbstractAction.java:36)
        at org.apache.activemq.artemis.cli.commands.user.AddUser.add(AddUser.java:52)
        at org.apache.activemq.artemis.cli.commands.user.AddUser.execute(AddUser.java:42)
        at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:153)
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:101)
        at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:128)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:134)
        at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:50)

关于如何解决这个问题有什么想法吗?

在手册的安全部分我找不到任何提示。 https://activemq.apache.org/components/artemis/documentation/latest/security.html

由于 ActiveMQ Artemis 2.16 不再可能使用 artemis user 命令,当代理 离线 并且 artemis user 命令的参数发生变化时,即: ./artemis user add --user-command-user guest --user-command-password guest --role admin --user admin --password admin

--user--password参数用于连接到代理,--user-command-user--user-command-password参数用于添加新用户。

您可以在 Upgrading from older versions

找到更多详细信息