From: <ls...@us...> - 2009-01-02 16:33:42
|
Revision: 4814 http://jnode.svn.sourceforge.net/jnode/?rev=4814&view=rev Author: lsantha Date: 2009-01-02 16:33:37 +0000 (Fri, 02 Jan 2009) Log Message: ----------- Fixed security exceptions during startup. Modified Paths: -------------- trunk/core/descriptors/org.jnode.driver.xml trunk/core/src/driver/org/jnode/driver/Driver.java Modified: trunk/core/descriptors/org.jnode.driver.xml =================================================================== --- trunk/core/descriptors/org.jnode.driver.xml 2008-12-30 21:01:21 UTC (rev 4813) +++ trunk/core/descriptors/org.jnode.driver.xml 2009-01-02 16:33:37 UTC (rev 4814) @@ -24,6 +24,7 @@ <extension-point id="mappers" name="Device to Driver mappers"/> <extension point="org.jnode.security.permissions"> + <permission class="java.lang.RuntimePermission" name="getClassLoader"/> <permission class="java.util.PropertyPermission" name="jnode.cmdline" actions="read"/> <permission class="org.jnode.security.JNodePermission" name="getVmClass"/> </extension> Modified: trunk/core/src/driver/org/jnode/driver/Driver.java =================================================================== --- trunk/core/src/driver/org/jnode/driver/Driver.java 2008-12-30 21:01:21 UTC (rev 4813) +++ trunk/core/src/driver/org/jnode/driver/Driver.java 2009-01-02 16:33:37 UTC (rev 4814) @@ -25,6 +25,8 @@ import org.jnode.plugin.PluginDescriptor; import org.jnode.plugin.PluginDescriptorListener; import org.jnode.system.BootLog; +import java.security.AccessController; +import java.security.PrivilegedAction; /** @@ -49,7 +51,12 @@ * Default constructor */ public Driver() { - final ClassLoader loader = getClass().getClassLoader(); + final ClassLoader loader = AccessController.doPrivileged( + new PrivilegedAction<ClassLoader>() { + public ClassLoader run() { + return getClass().getClassLoader(); + } + }); if (loader instanceof PluginClassLoader) { final PluginDescriptor descr = ((PluginClassLoader) loader).getDeclaringPluginDescriptor(); descr.addListener(new PluginListener()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |