Класс SecureClassLoader
- Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
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)
SecureClassLoader, используя указанный родительский загрузчик классов для делегирования. Если есть менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkCreateClassLoader, чтобы убедиться, что создание загрузчика классов разрешено.
- Параметры:
-
parent- родительский загрузчик классов - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckCreateClassLoaderне разрешает создание загрузчика классов. - См. также:
SecureClassLoader
protected SecureClassLoader()
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)
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- codesource. - Возвращает:
- разрешения, предоставленные codesource.
© 1993, 2023, 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/21/docs/api/java.base/java/security/SecureClassLoader.html