Класс SecureClassLoader
- Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
- С:
- 1.2
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый SecureClassLoader, используя родительский класс-загрузчик по умолчанию для делегирования. |
|
protected |
Создаёт новый SecureClassLoader, используя указанный родительский класс-загрузчик для делегирования. |
|
protected |
Создаёт новый SecureClassLoader с указанным именем и использованием указанного родительского класса-загрузчика для делегирования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected final Class<?> |
defineClass |
Преобразует массив байтов в экземпляр класса Class с необязательным CodeSource. |
protected final Class<?> |
defineClass |
Преобразует ByteBuffer в экземпляр класса Class, с необязательным CodeSource. |
protected PermissionCollection |
getPermissions |
Возвращает разрешения для данного объекта CodeSource. |
Методы, объявленные в классе java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
Подробное описание конструкторов
SecureClassLoader
protected SecureClassLoader(ClassLoader parent)
Если существует менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkCreateClassLoader для проверки разрешения на создание загрузчика классов.
- Параметры:
-
parent- родительский ClassLoader - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckCreateClassLoaderне разрешает создание загрузчика классов. - См. также:
SecureClassLoader
protected SecureClassLoader()
Если существует менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkCreateClassLoader для проверки разрешения на создание загрузчика классов.
- Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckCreateClassLoaderне разрешает создание загрузчика классов. - См. также:
SecureClassLoader
protected SecureClassLoader(String name, ClassLoader parent)
SecureClassLoader с указанным именем и использованием указанного родительского класса-загрузчика для делегирования.- Параметры:
-
name- имя загрузчика классов; илиnullесли без имени -
parent- родительский класс-загрузчик - Исключения:
-
IllegalArgumentException- если заданное имя пустое. -
SecurityException- если менеджер безопасности существует и егоSecurityManager.checkCreateClassLoader()метод не позволяет создать загрузчик классов. - С:
- 9
Подробное описание методов
defineClass
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
Если предоставлен ненулевой CodeSource, то ProtectionDomain строится и связывается с определяемым классом.
- Параметры:
-
name- ожидаемое имя класса, илиnullесли неизвестно, используя '.' а не '/' в качестве разделителя и без последующего ".class". -
b- байты, образующие данные класса. Байты в позицияхoffпоoff+len-1должны иметь формат корректного файла класса, как определено в Спецификации виртуальной машины Java. -
off- начальный смещение вbданных класса -
len- длина данных класса -
cs- связанный CodeSource, илиnullесли отсутствует - Возвращает:
- объект
Classсозданный из данных и необязательного CodeSource. - Исключения:
-
ClassFormatError- если данные не содержали корректного класса -
IndexOutOfBoundsException- если либоoffилиlenотрицательны, или еслиoff+lenбольше чемb.length. -
SecurityException- если попытка добавить этот класс в пакет, содержащий классы, подписанные разными сертификатами, или если имя класса начинается с "java.".
defineClass
protected final Class<?> defineClass(String name, ByteBuffer b, CodeSource cs)
ByteBuffer в экземпляр класса Class, с необязательным CodeSource. Перед использованием класс должен быть разрешен. Если предоставлен ненулевой CodeSource, то ProtectionDomain строится и связывается с определяемым классом.
- Параметры:
-
name- ожидаемое имя класса, илиnullесли неизвестно, используя '.' а не '/' в качестве разделителя и без последующего ".class". -
b- байты, образующие данные класса. Байты с позицийb.position()поb.position() + b.limit() -1должны иметь формат корректного файла класса, как определено в Спецификации виртуальной машины Java. -
cs- связанный CodeSource, илиnullесли отсутствует - Возвращает:
- объект
Classсозданный из данных и необязательного CodeSource. - Исключения:
-
ClassFormatError- если данные не содержали корректного класса -
SecurityException- если попытка добавить этот класс в пакет, содержащий классы, подписанные разными сертификатами, или если имя класса начинается с "java.". - С:
- 1.5
getPermissions
protected PermissionCollection getPermissions(CodeSource codesource)
Этот метод вызывается методом defineClass, который принимает CodeSource в качестве аргумента при построении ProtectionDomain для определяемого класса.
- Параметры:
-
codesource- codesource. - Возвращает:
- разрешения, предоставленные codesource.
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/security/SecureClassLoader.html