[jboss-cvs] JBossAS SVN: r80708 - projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Nov 8 14:33:34 EST 2008
Author: alesj
Date: 2008-11-08 14:33:34 -0500 (Sat, 08 Nov 2008)
New Revision: 80708
Added:
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/DefaultCodeSourceGenerator.java
Modified:
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/CodeSourceGenerator.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/FileProtocolCodeSourceGenerator.java
projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
Log:
Put back old behavior.
But leave Anil's CSG notion.
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/CodeSourceGenerator.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/CodeSourceGenerator.java 2008-11-08 09:36:54 UTC (rev 80707)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/CodeSourceGenerator.java 2008-11-08 19:33:34 UTC (rev 80708)
@@ -21,24 +21,24 @@
*/
package org.jboss.classloading.spi.vfs.policy;
-import java.net.MalformedURLException;
import java.net.URL;
import java.security.CodeSource;
import java.security.cert.Certificate;
/**
* Generates a CodeSource for a VFS URL
+ *
* @author Anil.Saldhana at redhat.com
- * @since Nov 8, 2008
*/
public interface CodeSourceGenerator
{
/**
- * Generate a CodeSource for the vfs url
- * @param vfsURL
- * @param certs
- * @return
- * @throws MalformedURLException
+ * Generate a CodeSource for the vfs url.
+ *
+ * @param url the vfs url
+ * @param certs the certificates
+ * @return new code source
+ * @throws Exception for any error
*/
- CodeSource getCodeSource(URL vfsURL, Certificate[] certs) throws MalformedURLException;
+ CodeSource getCodeSource(URL url, Certificate[] certs) throws Exception;
}
\ No newline at end of file
Copied: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/DefaultCodeSourceGenerator.java (from rev 80707, projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/FileProtocolCodeSourceGenerator.java)
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/DefaultCodeSourceGenerator.java (rev 0)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/DefaultCodeSourceGenerator.java 2008-11-08 19:33:34 UTC (rev 80708)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.classloading.spi.vfs.policy;
+
+import java.net.URL;
+import java.security.CodeSource;
+import java.security.cert.Certificate;
+
+/**
+ * Default code source generator.
+ *
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
+ */
+public class DefaultCodeSourceGenerator implements CodeSourceGenerator
+{
+ public static final CodeSourceGenerator INSTANCE = new DefaultCodeSourceGenerator();
+
+ public CodeSource getCodeSource(URL url, Certificate[] certs) throws Exception
+ {
+ return new CodeSource(url, certs);
+ }
+}
\ No newline at end of file
Property changes on: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/DefaultCodeSourceGenerator.java
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/FileProtocolCodeSourceGenerator.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/FileProtocolCodeSourceGenerator.java 2008-11-08 09:36:54 UTC (rev 80707)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/FileProtocolCodeSourceGenerator.java 2008-11-08 19:33:34 UTC (rev 80708)
@@ -21,7 +21,6 @@
*/
package org.jboss.classloading.spi.vfs.policy;
-import java.net.MalformedURLException;
import java.net.URL;
import java.security.CodeSource;
import java.security.cert.Certificate;
@@ -29,26 +28,19 @@
/**
* JBCL-64: Generates a CodeSource from a vfs URL
* with the substitution of file as protocol
+ *
* @author Anil.Saldhana at redhat.com
- * @since Nov 8, 2008
*/
public class FileProtocolCodeSourceGenerator implements CodeSourceGenerator
-{
+{
/**
* Constant representing the URL file protocol
*/
private static final String FILE_PROTOCOL = "file";
- /**
- * @see CodeSourceGenerator#getCodeSource(URL, Certificate[])s
- */
- public CodeSource getCodeSource(URL vfsURL, Certificate[] certs)
- throws MalformedURLException
+ public CodeSource getCodeSource(URL url, Certificate[] certs) throws Exception
{
- URL codesourceURL = new URL(FILE_PROTOCOL,
- vfsURL.getHost(), vfsURL.getPort(),
- vfsURL.getFile());
-
+ URL codesourceURL = new URL(FILE_PROTOCOL, url.getHost(), url.getPort(), url.getFile());
return new CodeSource(codesourceURL, certs);
}
}
Modified: projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java
===================================================================
--- projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2008-11-08 09:36:54 UTC (rev 80707)
+++ projects/jboss-cl/trunk/classloading-vfs/src/main/java/org/jboss/classloading/spi/vfs/policy/VFSClassLoaderPolicy.java 2008-11-08 19:33:34 UTC (rev 80708)
@@ -25,6 +25,7 @@
import java.io.InputStream;
import java.net.URL;
import java.security.CodeSource;
+import java.security.Permission;
import java.security.PermissionCollection;
import java.security.Policy;
import java.security.ProtectionDomain;
@@ -54,6 +55,7 @@
* VFSClassLoaderPolicy.
*
* @author <a href="adrian at jboss.org">Adrian Brock</a>
+ * @author <a href="ales.justin at jboss.org">Ales Justin</a>
* @author <a href="anil.saldhana at jboss.org">Anil Saldhana</a>
* @version $Revision: 1.1 $
*/
@@ -109,8 +111,11 @@
private Map<String, VirtualFileInfo> vfsCache = Collections.synchronizedMap(new SoftValueHashMap());
/** A generator that is capable of providing Java Security Manager friendly CodeSource */
- private CodeSourceGenerator codeSourceGenerator = new FileProtocolCodeSourceGenerator();
-
+ private CodeSourceGenerator codeSourceGenerator = DefaultCodeSourceGenerator.INSTANCE;
+
+ /** Code source permission */
+ private static final Permission csgPermission = new RuntimePermission(VFSClassLoaderPolicy.class.getName() + ".setCodeSourceGenerator");
+
/**
* Determine a name from the roots
*
@@ -512,16 +517,18 @@
}
/**
- * Set a CodeSource Generator
- * @param csg
+ * Set a CodeSource Generator.
+ *
+ * @param csg the code soruce generator
*/
public void setCodeSourceGenerator(final CodeSourceGenerator csg)
{
- String perm = "org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy.setCodeSourceGenerator";
- RuntimePermission rtp = new RuntimePermission(perm);
+ if (csg == null)
+ throw new IllegalArgumentException("Null code source generator.");
+
SecurityManager sm = System.getSecurityManager();
if(sm != null)
- sm.checkPermission(rtp);
+ sm.checkPermission(csgPermission);
codeSourceGenerator = csg;
}
More information about the jboss-cvs-commits
mailing list