拥有只读控制台权限的用户?

时间:2019-04-01 16:41:10

标签: activemq-artemis

我想知道是否可以添加对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

1 个答案:

答案 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"