Класс UnresolvedPermission
- Все реализуемые интерфейсы:
-
Serializable,Guard
public final class UnresolvedPermission extends Permission implements Serializable
Политика Java-среды выполнения (определяющая, какие разрешения доступны для кода от различных принципалов) представлена объектом Policy. Всякий раз, когда политика инициализируется или обновляется, для всех разрешений, разрешённых политикой, создаются соответствующие объекты Permission.
Многие типы классов разрешений, на которые ссылается конфигурация политики, существуют локально (то есть их можно найти в CLASSPATH). Объекты для таких разрешений могут быть созданы во время инициализации политики. Например, всегда можно создать java.io.FilePermission, так как класс FilePermission находится в CLASSPATH.
Другие классы разрешений могут ещё не существовать во время инициализации политики. Например, ссылаемый класс разрешения может находиться в JAR-файле, который будет загружен позже. Для каждого такого класса создаётся UnresolvedPermission. Таким образом, UnresolvedPermission — это, по сути, «заполнитель», содержащий информацию о разрешении.
Позже, когда код вызывает AccessController.checkPermission для разрешения типа, который ранее был неразрешённым, но чья реализация класса с тех пор была загружена, ранее неразрешённые разрешения этого типа «разрешаются». То есть для каждого такого UnresolvedPermission создаётся новый объект соответствующего типа класса на основе информации в UnresolvedPermission.
Для создания нового класса UnresolvedPermission предполагает, что класс предоставляет конструктор с нулём, одним и/или двумя аргументами. Конструктор с нулём аргументов использовался бы для создания разрешения без имени и без действий. Предполагается, что конструктор с одним аргументом принимает имя String, а конструктор с двумя аргументами принимает имя String и String действия в качестве входных данных. UnresolvedPermission может вызвать конструктор с именем null и/или действиями. Если подходящий конструктор разрешения недоступен, UnresolvedPermission игнорируется, и соответствующее разрешение не будет предоставлено выполняемому коду.
Созданный объект разрешения заменяет UnresolvedPermission, который удаляется.
Обратите внимание, что метод getName для UnresolvedPermission возвращает type (имя класса) для базового разрешения, которое ещё не было разрешено.
- С тех пор:
- 1.2
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
UnresolvedPermission |
Создаёт новый UnresolvedPermission, содержащий информацию о разрешении, необходимую для последующего создания Permission указанного класса, когда разрешение будет разрешено. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Проверяет два объекта UnresolvedPermission на равенство. |
String |
getActions() |
Возвращает каноническое строковое представление действий, которое в данный момент является пустой строкой "", так как для UnresolvedPermission нет действий. |
String |
getUnresolvedActions() |
Получает действия для базового разрешения, которое ещё не было разрешено. |
Certificate[] |
getUnresolvedCerts() |
Получает сертификаты подписывающего лица (без какой-либо поддерживающей цепочки) для базового разрешения, которое ещё не было разрешено. |
String |
getUnresolvedName() |
Получает целевое имя базового разрешения, которое ещё не было разрешено. |
String |
getUnresolvedType() |
Получает тип (имя класса) базового разрешения, которое ещё не было разрешено. |
int |
hashCode() |
Возвращает значение хэш-кода для этого объекта. |
boolean |
implies |
Этот метод всегда возвращает false для неразрешённых разрешений. |
PermissionCollection |
newPermissionCollection() |
Возвращает новый объект PermissionCollection для хранения объектов UnresolvedPermission. |
String |
toString() |
Возвращает строку, описывающую этот UnresolvedPermission. |
Методы, объявленные в классе java.security.Permission
checkGuard, getName
Подробное описание конструкторов
UnresolvedPermission
public UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
- Параметры:
-
type- имя класса Permission, который будет создан при разрешении этого неразрешённого разрешения. -
name- имя разрешения. -
actions- действия разрешения. -
certs- сертификаты, которыми был подписан класс разрешения. Это список цепочек сертификатов, где каждая цепочка состоит из сертификата подписывающего лица и, необязательно, его поддерживающей цепочки сертификатов. Каждая цепочка отсортирована снизу вверх (т.е. сертификат подписывающего лица первым, а (корневой) сертификат удостоверяющего центра последним). Сертификаты подписывающих лиц копируются из массива. Последующие изменения в массиве не повлияют на этот UnsolvedPermission.
Подробное описание методов
implies
public boolean implies(Permission p)
- Задано в:
-
impliesв классеPermission - Параметры:
-
p- разрешение, с которым нужно сравнить. - Возвращает:
- false.
equals
public boolean equals(Object obj)
obj является UnresolvedPermission и имеет то же имя типа (класса), имя разрешения, действия и сертификаты, что и этот объект. Для определения равенства сертификатов этот метод сравнивает только фактические сертификаты подписывающих лиц. Поддерживающие цепочки сертификатов этим методом не учитываются.
- Задано в:
-
equalsв классеPermission - Параметры:
-
obj- объект, с которым проверяется равенство. - Возвращает:
- true, если obj является UnresolvedPermission и имеет то же имя типа (класса), имя разрешения, действия и сертификаты, что и этот объект.
- См. также:
hashCode
public int hashCode()
- Задано в:
-
hashCodeв классеPermission - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
getActions
public String getActions()
- Задано в:
-
getActionsв классеPermission - Возвращает:
- пустую строку "".
getUnresolvedType
public String getUnresolvedType()
- Возвращает:
- тип (имя класса) базового разрешения, которое ещё не было разрешено
- С тех пор как:
- 1.5
getUnresolvedName
public String getUnresolvedName()
- Возвращает:
- целевое имя базового разрешения, которое ещё не было разрешено, или
null, если целевого имени нет - С тех пор как:
- 1.5
getUnresolvedActions
public String getUnresolvedActions()
- Возвращает:
- действия для базового разрешения, которое ещё не было разрешено, или
nullесли действий нет - С тех пор как:
- 1.5
getUnresolvedCerts
public Certificate[] getUnresolvedCerts()
- Возвращает:
- сертификаты подписывающих лиц для базового разрешения, которое ещё не было разрешено, или null, если сертификатов нет. Каждый раз, когда вызывается этот метод, возвращается новый массив.
- С тех пор как:
- 1.5
toString
public String toString()
- Переопределяет:
-
toStringв классеPermission - Возвращает:
- информация об этом UnresolvedPermission.
newPermissionCollection
public PermissionCollection newPermissionCollection()
- Переопределяет:
-
newPermissionCollectionв классеPermission - Возвращает:
- новый объект PermissionCollection, подходящий для хранения UnresolvedPermission.
© 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/UnresolvedPermission.html