mx4j/src/core/mx4j/server MX4JMBeanServer.java,1.24,1.25

Jeremy Boynes <[email protected]> Tue, 08 Feb 2005 07:12:25 +0000
Newsgroups gmane.comp.java.mx4j.cvs
Message-ID <[email protected]>
Update of /cvsroot/mx4j/mx4j/src/core/mx4j/server
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27674/src/core/mx4j/server

Modified Files:
	MX4JMBeanServer.java 
Log Message:
[ 1116245 ] MBeanPermission implies is incorrect with wildcards
[ 1116450 ] spec ambiguity? security check for getDomains()
Fix both with testcases

Index: MX4JMBeanServer.java
===================================================================
RCS file: /cvsroot/mx4j/mx4j/src/core/mx4j/server/MX4JMBeanServer.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** MX4JMBeanServer.java	21 Nov 2004 14:16:03 -0000	1.24
--- MX4JMBeanServer.java	8 Feb 2005 07:12:22 -0000	1.25
***************
*** 1088,1096 ****
     public String[] getDomains()
     {
        synchronized (domains)
        {
!          Set keys = domains.keySet();
!          return (String[])keys.toArray(new String[keys.size()]);
        }
     }
  
--- 1088,1123 ----
     public String[] getDomains()
     {
+       SecurityManager sm = System.getSecurityManager();
+       if (sm != null)
+       {
+          sm.checkPermission(new MBeanPermission(null, null, null, "getDomains"));
+       }
+       Set keys;
        synchronized (domains)
        {
!          keys = new HashSet(domains.keySet());
        }
+       if (sm != null)
+       {
+          for (Iterator i = keys.iterator(); i.hasNext();)
+          {
+             String domain = (String) i.next();
+             try
+             {
+                ObjectName name = new ObjectName(domain, "x", "x");
+                sm.checkPermission(new MBeanPermission(null, null, name, "getDomains"));
+             }
+             catch (SecurityException e)
+             {
+                i.remove();
+                continue;
+             }
+             catch (MalformedObjectNameException e)
+             {
+                throw new AssertionError();
+             }
+          }
+       }
+       return (String[])keys.toArray(new String[keys.size()]);
     }
  



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click