我想知道是否可以添加对Artemis网络控制台具有"只读"访问权限的用户。 现在,我们处于一个重要的点,可以检查我的应用程序的使用者是否已创建并连接到队列,他是否是唯一连接的人,等等。我能想到的更容易看到的地方是通过Artemis控制台。我想要的是创建一个只能看到此信息、队列中的消息等,但不能创建新队列、发送消息、清除队列等的用户。 这可能吗?
我尝试按照本教程创建一个用户并尝试使用这些角色,但由于某种原因,我什至无法使用我创建的用户连接到控制台。我不断得到"禁止"。
谢谢!
编辑我尝试过的:
我已经更新了artemis-users.properties
,拥有以下用户:
admin = ENC(1024:5C41928065C0AED5B88F8DD66937F86F59BCF9F6BAC9097CD12C6D66FE83DC3B:DC9FCEECBBCB4849F3AE9570D83C8ABFDB1E03B0318F7B4BA128B9A174C00049C817FB2F7613D4A332BA1D1FF14C70F1E0492EECE747A6C7881E358F44CDB02C)
amqviewer = 123abc
admin
用户是在我设置代理时创建的。amqviewer
是我尝试具有只读权限的用户。
在artemis-roles.properties
,我将amqviewer
设置为具有viewer
角色(至少这是我在看到admin
用户的情况后的想法):
amq = admin
viewer = amqviewer
在management.xml
我设置了以下内容:
<authorisation>
<whitelist>
<entry domain="hawtio"/>
</whitelist>
<default-access>
<access method="list*" roles="amq"/>
<access method="get*" roles="amq"/>
<access method="is*" roles="amq"/>
<access method="set*" roles="amq"/>
<access method="*" roles="amq"/>
</default-access>
<role-access>
<match domain="org.apache.activemq.artemis">
<access method="list*" roles="amq"/>
<access method="get*" roles="amq"/>
<access method="is*" roles="amq"/>
<access method="set*" roles="amq"/>
<access method="*" roles="amq"/>
</match>
<match domain="org.apache.activemq.artemis">
<access method="list*" roles="viewer"/>
<access method="get*" roles="viewer"/>
</match>
</role-access>
</authorisation>
问题是,我什至无法通过登录。当我尝试使用amqviewer
用户登录时,我得到forbidden
.
要在 Web 控制台中仅允许读取访问,需要在管理.xml和 artemis.profile 中设置角色。
要将角色配置为只读,请更新管理.xml和 artemis.profile,如下所示。
<role-access>
<match domain="org.apache.activemq.artemis">
<access method="list*" roles="readonly,amq"/>
<access method="get*" roles="readonly,amq"/>
<access method="is*" roles="readonly,amq"/>
<access method="set*" roles="update,amq"/>
<access method="*" roles="amq"/>
</match>
</role-access>
在Artemis.profile中:-Dhawtio.roles=amq,readonly
参考:https://activemq.apache.org/components/artemis/documentation/latest/management.html。
编辑(因为我无法在评论中回复):
到目前为止,您所做的一切都是正确的。 你只需要在Artemis.profile中为hawtio角色提供"readonly"角色。
in artemis.profile: -Dhawtio.roles=amq,readonly
您可以通过代理启动日志验证是否已成功添加。它将显示如下。
2019-05-06 10:45:24,655 INFO [io.hawt.web.AuthenticationFilter] Starting hawtio authentication filter, JAAS realm: "activemq" authorized role(s): "admin,readonly" role principal classes: "org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal"