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