[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