Ivan created ARTEMIS-3339:
-----------------------------
Summary: Role Based Authorisation for JMX not working as expected
Key: ARTEMIS-3339
URL: https://issues.apache.org/jira/browse/ARTEMIS-3339
Project: ActiveMQ Artemis
Issue Type: Bug
Components: Configuration, JMX, Web Console
Affects Versions: 2.17.0
Reporter: Ivan
Attachments: address-settings.xml, addresses.xml,
artemis-roles.properties, artemis-users.properties, artemis.profile.cmd,
broker.xml, image-2021-06-09-23-22-51-886.png,
image-2021-06-09-23-29-49-670.png, management.xml, security-settings.xml
Hello,
I tried to specify role based authorisation in management.xml for different
addresses/queues (as instructed
[here|https://activemq.apache.org/components/artemis/documentation/latest/management.html]):
!image-2021-06-09-23-22-51-886.png!
In Artemis profile config I gave hawtio role to the corresponding users:
_-Dhawtio.role=amq,auser,buser,cuser,duser_
The problem is that the authorisation is not working as expected, and only the
FIRST "match domain" configuration is working fine.
In my case, I tested with 4 sections as those in the screenshot above:
_<match domain="org.apache.activemq.artemis" key="address=*a**">..._
_<match domain="org.apache.activemq.artemis" key="address=*b**">..._
_<match domain="org.apache.activemq.artemis" key="address=*c**">..._
_<match domain="org.apache.activemq.artemis" key="address=*d**">..._
When I login using "*auser*" in the web console, I can invoke operations on
addresses/queues starting with "*a**", and not on the others, as I'd expect.
But when I login using some of the other users, for example, *buser*, I can
still invoke operations on queues starting with "*a*", but not on the queues
starting with "*b**", as I'd expect (all operations are disabled, as in the
screenshot below):
!image-2021-06-09-23-29-49-670.png!
It is interesting that, if I change the order of the sections in
management.xml, for example as follows (so address "d*" is first):
_<match domain="org.apache.activemq.artemis" key="address=*d**">..._
_<match domain="org.apache.activemq.artemis" key="address=a*">..._
_<match domain="org.apache.activemq.artemis" key="address=b*">..._
_<match domain="org.apache.activemq.artemis" key="address=c*">..._
Then for "duser" that is authorized to work with "d*" queues it works as
expected, but when I login with auser, buser or cuser instead, again the same
problem happens that all those users can invoke operations on "d*" queues, and
not on the queues that they are expected to be autorized for.
I attach all relevant configuration files for a reference.
Regards,
Ivan
--
This message was sent by Atlassian Jira
(v8.3.4#803005)