Класс SecureClassLoader
- java.lang.Object
-
- java.lang.ClassLoader
-
- java.security.SecureClassLoader
- Прямые известные подклассы:
URLClassLoader
public class SecureClassLoader extends ClassLoader
Этот класс расширяет ClassLoader с дополнительной поддержкой определения классов с связанным источником кода и разрешениями, которые извлекаются политикой системы по умолчанию.
- С:
- 1.2
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
SecureClassLoader() |
Создает новый SecureClassLoader, используя родительский класс-загрузчик по умолчанию для делегирования. |
protected |
SecureClassLoader(ClassLoader parent) |
Создает новый SecureClassLoader, используя указанный родительский класс-загрузчик для делегирования. |
protected |
SecureClassLoader(String name,
ClassLoader parent) |
Создает новый |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected Class<?> |
defineClass(String name,
byte[] b,
int off,
int len,
CodeSource cs) |
Преобразует массив байтов в экземпляр класса Class с необязательным CodeSource. |
protected Class<?> |
defineClass(String name,
ByteBuffer b,
CodeSource cs) |
Преобразует |
protected PermissionCollection |
getPermissions(CodeSource codesource) |
Возвращает разрешения для данного объекта 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
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
SecureClassLoader
protected SecureClassLoader(ClassLoader parent)
Создает новый SecureClassLoader, используя указанный родительский класс-загрузчик для делегирования.
Если есть менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkCreateClassLoader для обеспечения разрешения на создание загрузчика классов.
- Параметры:
-
parent- родительский ClassLoader - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckCreateClassLoaderне разрешает создание загрузчика классов. - См. также:
SecurityManager.checkCreateClassLoader()
SecureClassLoader
protected SecureClassLoader()
Создает новый SecureClassLoader, используя родительский класс-загрузчик по умолчанию для делегирования.
Если есть менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkCreateClassLoader для обеспечения разрешения на создание загрузчика классов.
- Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckCreateClassLoaderне разрешает создание загрузчика классов. - См. также:
SecurityManager.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)
Возвращает разрешения для данного объекта CodeSource.
Этот метод вызывается методом defineClass, который принимает CodeSource в качестве аргумента при построении ProtectionDomain для определяемого класса.
- Параметры:
-
codesource- codesource. - Возвращает:
- разрешения, предоставленные codesource.
© 1993, 2020, 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/11/docs/api/java.base/java/security/SecureClassLoader.html