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 parent)
Creates a new SecureClassLoader using the specified parent
class loader for delegation.
|
Modifier and Type | Method and Description |
---|---|
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 cs)
Converts a
ByteBuffer
into an instance of class Class , with an optional CodeSource. |
protected PermissionCollection |
getPermissions(CodeSource 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, setSigners
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.
parent
- the parent ClassLoaderSecurityException
- 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 datalen
- the length of the class datacs
- the associated CodeSource, or null
if noneClass
object created from the data,
and optional CodeSource.ClassFormatError
- if the data did not contain a valid classIndexOutOfBoundsException
- 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 noneClass
object created from the data,
and optional CodeSource.ClassFormatError
- if the data did not contain a valid classSecurityException
- 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 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.
codesource
- the codesource. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.