[jboss-cvs] JBossAS SVN: r74538 - projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 13 10:52:38 EDT 2008


Author: kabir.khan at jboss.com
Date: 2008-06-13 10:52:38 -0400 (Fri, 13 Jun 2008)
New Revision: 74538

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/SecurityActions.java
Log:
Add Security action to wrap Class.getClassLoader()

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/SecurityActions.java	2008-06-13 14:34:51 UTC (rev 74537)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/pointcut/SecurityActions.java	2008-06-13 14:52:38 UTC (rev 74538)
@@ -214,4 +214,41 @@
          return GetDeclaredFieldsAction.PRIVILEGED.getDeclaredFields(clazz);
       }
    }
+
+   
+   interface GetClassLoaderAction 
+   {
+      ClassLoader getClassLoader(Class<?> clazz);
+      
+      GetClassLoaderAction NON_PRIVILEGED = new GetClassLoaderAction() {
+
+         public ClassLoader getClassLoader(Class<?> clazz)
+         {
+            return clazz.getClassLoader();
+         }};
+
+         GetClassLoaderAction PRIVILEGED = new GetClassLoaderAction() {
+
+            public ClassLoader getClassLoader(final Class<?> clazz)
+            {
+               return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+
+                  public ClassLoader run()
+                  {
+                     return clazz.getClassLoader();
+                  }});
+            }};
+   }
+   
+   static ClassLoader getClassLoader(Class<?> clazz)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         return GetClassLoaderAction.NON_PRIVILEGED.getClassLoader(clazz);
+      }
+      else
+      {
+         return GetClassLoaderAction.PRIVILEGED.getClassLoader(clazz);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list