我想知道是否可以添加对Artemis Web控制台具有“只读”访问权限的用户。 现在,我们很重要的一点是,检查应用程序的使用者是否已创建并连接到队列,是否他是唯一的连接者,等等。而且我能想到的更简单的地方是通过Artemis Console。我想要的是创建一个用户,该用户只能看到此信息,队列中的消息等,而不能创建新队列,发送消息,清除队列等。 有可能吗?
我曾尝试按照this tutorial创建用户并扮演角色,但由于某些原因,我什至无法与创建的用户连接到控制台。我不断收到“禁止”。
谢谢!
修改 我尝试过的:
我已将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
。
答案 0 :(得分:0)
要仅允许在Web控制台中进行读取访问,需要在management.xml和artemis.profile中设置角色。
要以只读方式配置角色,请按如下所示更新management.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角色即可。
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,viewer" role principal classes: "org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal"