is new.
java.lang.Objectjava.lang.ClassLoader
java.security.SecureClassLoader
This class extends ClassLoader with additional support for defining classes with an associated code source and permissions which are retrieved by the system policy by default.
| Constructor Summary | |
|---|---|
| protected |
SecureClassLoader
() Creates a new SecureClassLoader using the default parent class loader for delegation. |
| protected |
SecureClassLoader
(
ClassLoader
parent) Creates a new SecureClassLoader using the specified parent class loader for delegation. |
| Method Summary | |
|---|---|
| protected Class |
defineClass
(
String
name, byte[] b, int off, int len,
CodeSource
cs) Converts an array of bytes into an instance of class Class, with an optional CodeSource. |
protected
Class
|
defineClass
(
String
name,
ByteBuffer
b,
CodeSource
Converts a
ByteBuffer
Class
, with an optional CodeSource.
|
| protected PermissionCollection |
getPermissions
(
CodeSource
codesource) Returns the permissions for the given CodeSource object. |
| Methods inherited from class java.lang. ClassLoader |
|---|
clearAssertionStatus
,
defineClass
,
defineClass
,
defineClass
,
defineClass
,
definePackage
,
findClass
,
findLibrary
,
findLoadedClass
,
findResource
,
findResources
,
findSystemClass
,
getPackage
,
getPackages
,
getParent
,
getResource
,
getResourceAsStream
,
getResources
,
getSystemClassLoader
,
getSystemResource
,
getSystemResourceAsStream
,
getSystemResources
,
loadClass
,
loadClass
,
resolveClass
,
setClassAssertionStatus
,
setDefaultAssertionStatus
,
setPackageAssertionStatus
,
setSigners
|
| Methods inherited from class java.lang. Object |
|---|
| clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
| Constructor Detail |
|---|
protected SecureClassLoader(ClassLoader parent)
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.
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.
| Method Detail |
|---|
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.
defineClass
protected final
Class
defineClass
(
String
name,
ByteBuffer
b,
CodeSource
cs)
Converts a
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.
Parameters:
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
Returns:
the Class object created from the data, and optional CodeSource.
Throws:
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.".
Since:
1.5
protected PermissionCollection getPermissions(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.