Класс SecureClassLoader
- Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
ClassLoader, обеспечивая дополнительную поддержку определения классов с соответствующим источником кода и разрешениями.- Примечание API:
- Разрешения нельзя использовать для управления доступом к ресурсам, поскольку диспетчер безопасности больше не поддерживается.
- С версии:
- 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. |
Методы, объявленные в классе 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)
SecureClassLoader, используя указанный родительский загрузчик классов для делегирования.- Примечание API:
- Если
parentуказано какnull(для загрузчика классов начальной загрузки), нет гарантии, что все платформенные классы будут видны. См. раздел Встроенные загрузчики классов времени выполнения, содержащий сведения о загрузчике классов начальной загрузки и других встроенных загрузчиках классов. - Параметры:
-
parent— родительский ClassLoader; может бытьnullдля загрузчика классов начальной загрузки
SecureClassLoader
protected SecureClassLoader()
SecureClassLoader, используя системный загрузчик классов в качестве родительского.SecureClassLoader
protected SecureClassLoader(String name, ClassLoader parent)
SecureClassLoader с указанным именем, используя указанный родительский загрузчик классов для делегирования.- Примечание API:
- Если
parentуказано какnull(для загрузчика классов начальной загрузки), нет гарантии, что все платформенные классы будут видны. См. раздел Встроенные загрузчики классов времени выполнения, содержащий сведения о загрузчике классов начальной загрузки и других встроенных загрузчиках классов. - Параметры:
-
name— имя загрузчика классов; илиnull, если имя не задано -
parent— родительский загрузчик классов; может бытьnullдля загрузчика классов начальной загрузки - Исключения:
-
IllegalArgumentException— если указанное имя пусто. - С версии:
- 9
Подробное описание методов
defineClass
protected final Class<?> defineClass(String name, byte[] b, int off, int len, CodeSource cs)
Class с необязательным CodeSource. Прежде чем класс можно будет использовать, его необходимо связать. Если указан ненулевой 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— источник кода. - Возвращает:
- разрешения для источника кода.
© 1993, 2025, 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/25/docs/api/java.base/java/security/SecureClassLoader.html