com.ibm.security12.sun.applet
Class AppletClassLoader

java.lang.Object
  |
  +--java.lang.ClassLoader
        |
        +--com.ibm.security12.java.lang.ClassLoader12
              |
              +--com.ibm.security12.java.security.SecureClassLoader
                    |
                    +--com.ibm.security12.java.net.URLClassLoader
                          |
                          +--com.ibm.security12.sun.applet.AppletClassLoader

public class AppletClassLoader
extends URLClassLoader

This class defines the class loader for loading applet classes and resources. It extends URLClassLoader to search the applet code base for the class or resource after checking any loaded JAR files.


Constructor Summary
protected AppletClassLoader(URL base)
           
 
Method Summary
protected  Class findClass(String name)
           
 URL findResource(String name)
           
 Enumeration findResources(String name)
           
protected  PermissionCollection getPermissions(CodeSource codesource)
          Returns the permissions for the given codesource object.
 URL[] getURLs()
           
 Class loadClass(String name, boolean resolve)
           
 
Methods inherited from class com.ibm.security12.java.net.URLClassLoader
addURL, definePackage, newInstance, newInstance
 
Methods inherited from class com.ibm.security12.java.security.SecureClassLoader
defineClass
 
Methods inherited from class com.ibm.security12.java.lang.ClassLoader12
defineClass, definePackage, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource12, getSystemResourceAsStream12, getSystemResources, loadClass
 
Methods inherited from class java.lang.ClassLoader
defineClass, defineClass, defineClass, findLibrary, findLoadedClass, findSystemClass, getSystemResource, getSystemResourceAsStream, resolveClass, setSigners
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AppletClassLoader

protected AppletClassLoader(URL base)
Method Detail

getURLs

public URL[] getURLs()
Overrides:
getURLs in class URLClassLoader

loadClass

public Class loadClass(String name,
                       boolean resolve)
                throws ClassNotFoundException
Overrides:
loadClass in class ClassLoader12

findClass

protected Class findClass(String name)
                   throws ClassNotFoundException
Overrides:
findClass in class URLClassLoader

getPermissions

protected PermissionCollection getPermissions(CodeSource codesource)
Returns the permissions for the given codesource object. The implementation of this method first calls super.getPermissions, to get the permissions granted by the super class, and then adds additional permissions based on the URL of the codesource.

If the protocol is "file" and the path specifies a file, permission is granted to read all files and (recursively) all files and subdirectories contained in that directory. This is so applets with a codebase of file:/blah/some.jar can read in file:/blah/, which is needed to be backward compatible. We also add permission to connect back to the "localhost".

Parameters:
codesource - the codesource
Returns:
the permissions granted to the codesource
Overrides:
getPermissions in class URLClassLoader

findResource

public URL findResource(String name)
Overrides:
findResource in class URLClassLoader

findResources

public Enumeration findResources(String name)
                          throws IOException
Overrides:
findResources in class URLClassLoader