public class

SecureClassLoader

extends ClassLoader
java.lang.Object
   ↳ java.lang.ClassLoader
     ↳ java.security.SecureClassLoader
Known Direct Subclasses

Class Overview

SecureClassLoader represents a ClassLoader which associates the classes it loads with a code source and provide mechanisms to allow the relevant permissions to be retrieved.

Summary

Protected Constructors
SecureClassLoader()
Constructs a new instance of SecureClassLoader.
SecureClassLoader(ClassLoader parent)
Constructs a new instance of SecureClassLoader with the specified parent ClassLoader.
Protected Methods
final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.
final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.
PermissionCollection getPermissions(CodeSource codesource)
Returns the PermissionCollection for the specified CodeSource.
[Expand]
Inherited Methods
From class java.lang.ClassLoader
From class java.lang.Object

Protected Constructors

protected SecureClassLoader ()

Since: API Level 1

Constructs a new instance of SecureClassLoader. The default parent ClassLoader is used.

If a SecurityManager is installed, code calling this constructor needs the SecurityPermission checkCreateClassLoader to be granted, otherwise a SecurityException will be thrown.

Throws
SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this constructor.

protected SecureClassLoader (ClassLoader parent)

Since: API Level 1

Constructs a new instance of SecureClassLoader with the specified parent ClassLoader.

If a SecurityManager is installed, code calling this constructor needs the SecurityPermission checkCreateClassLoader to be granted, otherwise a SecurityException will be thrown.

Parameters
parent the parent ClassLoader.
Throws
SecurityException if a SecurityManager is installed and the caller does not have permission to invoke this constructor.

Protected Methods

protected final Class<?> defineClass (String name, byte[] b, int off, int len, CodeSource cs)

Since: API Level 1

Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.

Parameters
name the name of the new class.
b a memory image of a class file.
off the start offset in b of the class data.
len the length of the class data.
cs the CodeSource, or null.
Returns
  • a new class.
Throws
IndexOutOfBoundsException if off or len are not valid in respect to b.
ClassFormatError if the specified data is not valid class data.
SecurityException if the package to which this class is to be added, already contains classes which were signed by different certificates, or if the class name begins with "java."

protected final Class<?> defineClass (String name, ByteBuffer b, CodeSource cs)

Since: API Level 1

Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.

Parameters
name the name of the new class.
b a memory image of a class file.
cs the CodeSource, or null.
Returns
  • a new class.
Throws
ClassFormatError if the specified data is not valid class data.
SecurityException if the package to which this class is to be added, already contains classes which were signed by different certificates, or if the class name begins with "java."

protected PermissionCollection getPermissions (CodeSource codesource)

Since: API Level 1

Returns the PermissionCollection for the specified CodeSource.

Parameters
codesource the code source.
Returns
  • the PermissionCollection for the specified CodeSource.