[KARAF-3114] Fix whitelist configadmin issue in the KarafMBeanServerGuard which prevented to use ManagementFactory.getPlatformMBeanServer() code
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/a2881fe1 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/a2881fe1 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/a2881fe1 Branch: refs/heads/karaf-3.0.x Commit: a2881fe114f64ea11085521683fa2587c88727b1 Parents: cd4732b Author: Jean-Baptiste Onofré <[email protected]> Authored: Sat Aug 23 08:22:00 2014 +0200 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Sat Aug 23 08:22:00 2014 +0200 ---------------------------------------------------------------------- .../apache/karaf/management/KarafMBeanServerGuard.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/a2881fe1/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java ---------------------------------------------------------------------- diff --git a/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java b/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java index 198c665..f129025 100644 --- a/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java +++ b/management/server/src/main/java/org/apache/karaf/management/KarafMBeanServerGuard.java @@ -233,11 +233,14 @@ public class KarafMBeanServerGuard implements InvocationHandler { private boolean canBypassRBAC(ObjectName objectName) { List<String> allBypassObjectName = new ArrayList<String>(); try { - for (Configuration config : configAdmin.listConfigurations("(service.pid=" + JMX_ACL_WHITELIST + ")")) { - Enumeration<String> keys = config.getProperties().keys(); - while (keys.hasMoreElements()) { - String element = keys.nextElement(); - allBypassObjectName.add(element); + Configuration[] configs = configAdmin.listConfigurations("(service.pid=" + JMX_ACL_WHITELIST + ")"); + if (configs != null) { + for (Configuration config : configs) { + Enumeration<String> keys = config.getProperties().keys(); + while (keys.hasMoreElements()) { + String element = keys.nextElement(); + allBypassObjectName.add(element); + } } } } catch (InvalidSyntaxException ise) {
