You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2021/06/15 19:07:05 UTC

[activemq-artemis] branch main updated: ARTEMIS-3339 Fix management role match key comparator

This is an automated email from the ASF dual-hosted git repository.

clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new b1d326b  ARTEMIS-3339 Fix management role match key comparator
b1d326b is described below

commit b1d326ba8be43db3fe4724872d2871d2efb05294
Author: Domenico Francesco Bruscino <br...@apache.org>
AuthorDate: Tue Jun 15 15:07:58 2021 +0200

    ARTEMIS-3339 Fix management role match key comparator
---
 .../artemis/core/server/management/JMXAccessControlList.java       | 7 ++++---
 .../artemis/core/server/management/JMXAccessControlListTest.java   | 7 +++++--
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlList.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlList.java
index f09e91a..956726c 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlList.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlList.java
@@ -41,10 +41,11 @@ public class JMXAccessControlList {
          return +1;
       } else if (!key1ContainsWildCard && key2ContainsWildcard) {
          return -1;
-      } else if (key1ContainsWildCard && key2ContainsWildcard) {
-         return key2.length() - key1.length();
+      } else if (key1.length() == key2.length()) {
+         return key1.compareTo(key2);
       }
-      return key1.length() - key2.length();
+
+      return key2.length() - key1.length();
    };
 
    public void addToWhiteList(String domain, String key) {
diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlListTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlListTest.java
index e0b0233..9fe549c 100644
--- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlListTest.java
+++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlListTest.java
@@ -99,10 +99,13 @@ public class JMXAccessControlListTest {
    public void testBasicRoleWithWildcardInKey() throws MalformedObjectNameException {
       JMXAccessControlList controlList = new JMXAccessControlList();
       controlList.addToRoleAccess("org.myDomain", "type=foo*","listSomething", "update");
+      controlList.addToRoleAccess("org.myDomain", "type=bar*","listSomething", "browse");
       controlList.addToRoleAccess("org.myDomain", "type=foo.bar*","listSomething", "admin");
       controlList.addToRoleAccess("org.myDomain", null,"listSomething", "view");
-      List<String> roles = controlList.getRolesForObject(new ObjectName("org.myDomain:type=foo.bar.test"), "listSomething");
-      Assert.assertArrayEquals(roles.toArray(), new String[]{"admin"});
+      Assert.assertArrayEquals(controlList.getRolesForObject(new ObjectName("org.myDomain:type=foo.bar.test"),
+         "listSomething").toArray(), new String[]{"admin"});
+      Assert.assertArrayEquals(controlList.getRolesForObject(new ObjectName("org.myDomain:type=bar.test"),
+         "listSomething").toArray(), new String[]{"browse"});
    }
 
    @Test