[jboss-cvs] JBossAS SVN: r59393 - projects/aop/trunk/aop/src/main/org/jboss/aop

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 5 19:35:02 EST 2007


Author: kabir.khan at jboss.com
Date: 2007-01-05 19:34:57 -0500 (Fri, 05 Jan 2007)
New Revision: 59393

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
Log:
Some more security exceptions fixed

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java	2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/ClassicWeavingStrategy.java	2007-01-06 00:34:57 UTC (rev 59393)
@@ -110,7 +110,7 @@
              pool.lockInCache(clazz);
              if (AspectManager.debugClasses)
              {
-                clazz.debugWriteFile();
+                SecurityActions.debugWriteFile(clazz);
              }
 
              byte[] rtn = clazz.toBytecode();

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java	2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SecurityActions.java	2007-01-06 00:34:57 UTC (rev 59393)
@@ -27,6 +27,8 @@
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 
+import javassist.CtClass;
+
 /**
  * 
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
@@ -81,4 +83,51 @@
       }
    }
 
+   interface CtClassDebugWriteFileAction
+   {
+      void debugWriteFile(CtClass ctClass);
+      
+      CtClassDebugWriteFileAction PRIVILEGED = new CtClassDebugWriteFileAction()
+      {
+         public void debugWriteFile(final CtClass ctClass)
+         {
+            try
+            {
+               AccessController.doPrivileged(new PrivilegedExceptionAction()
+               {
+                  public Object run() throws Exception
+                  {
+                     ctClass.debugWriteFile();
+                     return null;
+                  }
+               });
+            }
+            catch (PrivilegedActionException e)
+            {
+               //Not really a problem if we're not able to write the debug class file
+            }
+         }
+      };
+
+      CtClassDebugWriteFileAction NON_PRIVILEGED = new CtClassDebugWriteFileAction()
+      {
+         public void debugWriteFile(CtClass ctClass)
+         {
+            ctClass.debugWriteFile();
+         }
+      };
+   }
+
+   static void debugWriteFile(CtClass ctClass)
+   {
+      if (System.getSecurityManager() == null)
+      {
+         CtClassDebugWriteFileAction.NON_PRIVILEGED.debugWriteFile(ctClass);
+      }
+      else
+      {
+         CtClassDebugWriteFileAction.PRIVILEGED.debugWriteFile(ctClass);
+      }
+   }
+
 }

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-01-06 00:09:16 UTC (rev 59392)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/SuperClassesFirstWeavingStrategy.java	2007-01-06 00:34:57 UTC (rev 59393)
@@ -68,7 +68,7 @@
 				pool.lockInCache(info.getClazz());
             if (AspectManager.debugClasses)
             {
-               info.getClazz().debugWriteFile();
+               SecurityActions.debugWriteFile(info.getClazz());
             }
 				byte[] rtn = info.getClazz().toBytecode();
 				if (AspectManager.getPrune()) info.getClazz().prune();
@@ -89,7 +89,6 @@
 				else
 					System.err.println("[error] " + ex.getMessage() +
                                        ".. Do verbose mode if you want full stack trace.");
-
 			}
 			throw ex;
 		}




More information about the jboss-cvs-commits mailing list