Package java.security

Class SecureClassLoader

java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
Direct Known Subclasses:
URLClassLoader

public class SecureClassLoader
extends ClassLoader
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.
  • Constructor Details

    • SecureClassLoader

      protected SecureClassLoader()
      Constructs a new instance of SecureClassLoader. The default parent ClassLoader is used.
    • SecureClassLoader

      protected SecureClassLoader​(ClassLoader parent)
      Constructs a new instance of SecureClassLoader with the specified parent ClassLoader.
      Parameters:
      parent - the parent ClassLoader.
  • Method Details

    • getPermissions

      protected PermissionCollection getPermissions​(CodeSource codesource)
      Returns the PermissionCollection for the specified CodeSource.
      Parameters:
      codesource - the code source.
      Returns:
      the PermissionCollection for the specified CodeSource.
    • defineClass

      protected 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.
      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."
    • defineClass

      protected 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.
      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."