Spec-Zone.ru › OpenJDK 8

Класс 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 предполагает, что класс предоставляет конструктор с нулем, одним и/или двумя аргументами. Конструктор с нулевым аргументом будет использоваться для создания разрешения без имени и без действий. Предполагается, что одноаргументный конструктор принимает String имя в качестве входных данных, а двухаргументный конструктор — String имя и String действия в качестве входных данных. UnresolvedPermission может вызвать конструктор с null именем и/или действиями. Если подходящий конструктор разрешения недоступен, UnresolvedPermission игнорируется, и соответствующее разрешение не будет предоставлено исполняемому коду.

Созданный объект разрешения заменяет UnresolvedPermission, который удаляется.

Обратите внимание, что getName метод для UnresolvedPermission возвращает type (имя класса) для базового разрешения, которое не было разрешено.

См. также:
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, содержащий информацию о разрешении, необходимую для последующего создания разрешения указанного класса, когда разрешение будет разрешено.

Параметры:
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, подходящий для хранения UnresolvedPermissions.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API