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 2018/03/08 17:09:47 UTC
[1/2] activemq-artemis git commit: ARTEMIS-1736 - make sure access
methods are ordered when used
Repository: activemq-artemis
Updated Branches:
refs/heads/master 9ae059bae -> d30c463a7
ARTEMIS-1736 - make sure access methods are ordered when used
https://issues.apache.org/jira/browse/ARTEMIS-1736
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/e849471c
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/e849471c
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/e849471c
Branch: refs/heads/master
Commit: e849471c832b7475939bfe969aef99ba6aa828a7
Parents: 9ae059b
Author: andytaylor <an...@gmail.com>
Authored: Thu Mar 8 09:49:56 2018 +0000
Committer: andytaylor <an...@gmail.com>
Committed: Thu Mar 8 16:12:08 2018 +0000
----------------------------------------------------------------------
.../server/management/JMXAccessControlList.java | 7 +++-
.../management/JMXAccessControlListTest.java | 39 ++++++++++++++++++++
2 files changed, 44 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e849471c/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlList.java
----------------------------------------------------------------------
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 e9644c0..5430157 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
@@ -20,6 +20,7 @@ import javax.management.ObjectName;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -105,7 +106,9 @@ public class JMXAccessControlList {
domainAccess.put(id, access);
}
- if (method.endsWith("*")) {
+ if (method.equals("*")) {
+ access.addCatchAll(roles);
+ } else if (method.endsWith("*")) {
String prefix = method.replace("*", "");
access.addMethodsPrefixes(prefix, roles);
} else {
@@ -130,7 +133,7 @@ public class JMXAccessControlList {
private final String domain;
List<String> catchAllRoles = new ArrayList<>();
Map<String, List<String>> methodRoles = new HashMap<>();
- Map<String, List<String>> methodPrefixRoles = new HashMap<>();
+ Map<String, List<String>> methodPrefixRoles = new LinkedHashMap<>();
Access(String domain) {
this.domain = domain;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e849471c/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/management/JMXAccessControlListTest.java
----------------------------------------------------------------------
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 d077f44..9d91f83 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
@@ -150,4 +150,43 @@ public class JMXAccessControlListTest {
List<String> roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:*"), "setSomethingMore");
Assert.assertArrayEquals(roles.toArray(), new String[]{"admin"});
}
+
+ @Test
+ public void testKeylessDomain() throws MalformedObjectNameException {
+ JMXAccessControlList controlList = new JMXAccessControlList();
+ controlList.addToRoleAccess("org.myDomain.foo", null,"list*", "amq","monitor");
+ controlList.addToRoleAccess("org.myDomain.foo", null,"get*", "amq","monitor");
+ controlList.addToRoleAccess("org.myDomain.foo", null,"is*", "amq","monitor");
+ controlList.addToRoleAccess("org.myDomain.foo", null,"set*", "amq");
+ controlList.addToRoleAccess("org.myDomain.foo", null,"*", "amq");
+
+ List<String> roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:foo=bar"), "listFoo");
+ Assert.assertNotNull(roles);
+ Assert.assertEquals(roles.size(), 2);
+ Assert.assertEquals(roles.get(0), "amq");
+ Assert.assertEquals(roles.get(1), "monitor");
+
+ roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:foo=bar"), "getFoo");
+ Assert.assertNotNull(roles);
+ Assert.assertEquals(roles.size(), 2);
+ Assert.assertEquals(roles.get(0), "amq");
+ Assert.assertEquals(roles.get(1), "monitor");
+
+ roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:foo=bar"), "isFoo");
+ Assert.assertNotNull(roles);
+ Assert.assertEquals(roles.size(), 2);
+ Assert.assertEquals(roles.get(0), "amq");
+ Assert.assertEquals(roles.get(1), "monitor");
+
+ roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:foo=bar"), "setFoo");
+ Assert.assertNotNull(roles);
+ Assert.assertEquals(roles.size(), 1);
+ Assert.assertEquals(roles.get(0), "amq");
+
+ roles = controlList.getRolesForObject(new ObjectName("org.myDomain.foo:foo=bar"), "createFoo");
+ Assert.assertNotNull(roles);
+ Assert.assertEquals(roles.size(), 1);
+ Assert.assertEquals(roles.get(0), "amq");
+
+ }
}
[2/2] activemq-artemis git commit: This closes #1939
Posted by cl...@apache.org.
This closes #1939
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/d30c463a
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/d30c463a
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/d30c463a
Branch: refs/heads/master
Commit: d30c463a71f8ca207662f5605375424d76dbdb43
Parents: 9ae059b e849471
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 8 12:09:41 2018 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 8 12:09:41 2018 -0500
----------------------------------------------------------------------
.../server/management/JMXAccessControlList.java | 7 +++-
.../management/JMXAccessControlListTest.java | 39 ++++++++++++++++++++
2 files changed, 44 insertions(+), 2 deletions(-)
----------------------------------------------------------------------