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