public class SecureClassLoader extends ClassLoader
| Modifier | Constructor and Description |
|---|---|
protected |
SecureClassLoader()
Creates a new SecureClassLoader using the default parent class loader for delegation.
|
protected |
SecureClassLoader(ClassLoader
Creates a new SecureClassLoader using the specified parent class loader for delegation.
|
| Modifier and Type | Method and Description |
|---|---|
protected Class |
defineClass(String
Converts an array of bytes into an instance of class Class, with an optional CodeSource.
|
protected Class |
defineClass(String
Converts a
ByteBuffer into an instance of class
Class, with an optional CodeSource.
|
protected PermissionCollection |
getPermissions(CodeSource
Returns the permissions for the given CodeSource object.
|
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprotected SecureClassLoader(ClassLoaderparent)
If there is a security manager, this method first calls the security manager's checkCreateClassLoader method to ensure creation of a class loader is allowed.
parent - the parent ClassLoader
SecurityException - if a security manager exists and its
checkCreateClassLoader method doesn't allow creation of a class loader.
SecurityManager.checkCreateClassLoader()
protected SecureClassLoader()
If there is a security manager, this method first calls the security manager's checkCreateClassLoader method to ensure creation of a class loader is allowed.
SecurityException - if a security manager exists and its
checkCreateClassLoader method doesn't allow creation of a class loader.
SecurityManager.checkCreateClassLoader()
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
If a non-null CodeSource is supplied a ProtectionDomain is constructed and associated with the class being defined.
name - the expected name of the class, or
null if not known, using '.' and not '/' as the separator and without a trailing ".class" suffix.
b - the bytes that make up the class data. The bytes in positions
off through
off+len-1 should have the format of a valid class file as defined by
The Java™ Virtual Machine Specification.
off - the start offset in
b of the class data
len - the length of the class data
cs - the associated CodeSource, or
null if none
Class object created from the data, and optional CodeSource.
ClassFormatError - if the data did not contain a valid class
IndexOutOfBoundsException - if either
off or
len is negative, or if
off+len is greater than
b.length.
SecurityException - if an attempt is made to add this class to a package that contains classes that were signed by a different set of certificates than this class, or if the class name begins with "java.".
protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
ByteBuffer into an instance of class
Class, with an optional CodeSource. Before the class can be used it must be resolved.
If a non-null CodeSource is supplied a ProtectionDomain is constructed and associated with the class being defined.
name - the expected name of the class, or
null if not known, using '.' and not '/' as the separator and without a trailing ".class" suffix.
b - the bytes that make up the class data. The bytes from positions
b.position() through
b.position() + b.limit() -1 should have the format of a valid class file as defined by
The Java™ Virtual Machine Specification.
cs - the associated CodeSource, or
null if none
Class object created from the data, and optional CodeSource.
ClassFormatError - if the data did not contain a valid class
SecurityException - if an attempt is made to add this class to a package that contains classes that were signed by a different set of certificates than this class, or if the class name begins with "java.".
protected PermissionCollectiongetPermissions(CodeSource codesource)
This method is invoked by the defineClass method which takes a CodeSource as an argument when it is constructing the ProtectionDomain for the class being defined.
codesource - the codesource.