Класс AccessControlContext

public final class AccessControlContext
extends Object

Контекст доступа AccessControlContext используется для принятия решений об доступе к системным ресурсам на основе контекста, который он инкапсулирует.

Более конкретно, он инкапсулирует контекст и имеет единственный метод checkPermission, который эквивалентен методу checkPermission в классе AccessController, с одним отличием: метод AccessControlContext checkPermission принимает решения о доступе на основе инкапсулированного контекста, а не контекста текущей потоковой нити.

Таким образом, назначение AccessControlContext заключается в ситуациях, когда проверка безопасности, которая должна выполняться в рамках данного контекста, фактически должна выполняться из другого контекста (например, из рабочей потоковой нити).

Контекст доступа AccessControlContext создается вызовом метода AccessController.getContext. Метод getContext делает «снимок» текущего контекста вызова и помещает его в объект AccessControlContext, который он возвращает. Пример вызова:

AccessControlContext acc = AccessController.getContext()

Код в другом контексте может впоследствии вызвать метод checkPermission на ранее сохраненном объекте AccessControlContext. Пример вызова:

acc.checkPermission(permission)
Since:
1.2
См. также:
AccessController

Конструкторы

Конструктор Описание
AccessControlContext​(AccessControlContext acc, DomainCombiner combiner)

Создает новый AccessControlContext с заданным AccessControlContext и DomainCombiner.

AccessControlContext​(ProtectionDomain[] context)

Создает контекст доступа AccessControlContext с заданным массивом ProtectionDomains.

Методы

Модификатор и тип Метод Описание
void checkPermission​(Permission perm)

Определяет, разрешен или запрещен ли запрос доступа, указанный указанным разрешением, на основе текущей политики безопасности и контекста в этом объекте.

boolean equals​(Object obj)

Проверяет два объекта AccessControlContext на равенство.

DomainCombiner getDomainCombiner()

Получить DomainCombiner, связанный с этим AccessControlContext.

int hashCode()

Возвращает значение хэш-кода для этого контекста.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Конструкторы

AccessControlContext

public AccessControlContext(ProtectionDomain[] context)

Создает контекст доступа AccessControlContext с заданным массивом ProtectionDomains. Контекст не должен быть null. Дублируемые домены будут удалены из контекста.

Параметры:
context - ProtectionDomains, связанные с этим контекстом. Недублируемые домены копируются из массива. Последующие изменения в массиве не повлияют на этот AccessControlContext.
Исключения:
NullPointerException - если context равен null.

AccessControlContext

public AccessControlContext(AccessControlContext acc,
                            DomainCombiner combiner)

Создает новый AccessControlContext с заданным AccessControlContext и DomainCombiner. Этот конструктор связывает предоставленный DomainCombiner с предоставленным AccessControlContext.

Параметры:
acc - AccessControlContext, связанный с предоставленным DomainCombiner.
combiner - DomainCombiner для связывания с предоставленным AccessControlContext.
Исключения:
NullPointerException - если предоставленный context равен null.
SecurityException - если установлен менеджер безопасности, и у вызывающего объекта отсутствует разрешение "createAccessControlContext" SecurityPermission
Since:
1.3

Методы

getDomainCombiner

public DomainCombiner getDomainCombiner()

Получить DomainCombiner , связанный с этим AccessControlContext.

Возвращает:
DomainCombiner , связанный с этим AccessControlContext, или null, если его нет.
Исключения:
SecurityException - если установлен менеджер безопасности, и у вызывающего объекта отсутствует разрешение "getDomainCombiner" SecurityPermission
Since:
1.3

checkPermission

public void checkPermission(Permission perm)
                     throws AccessControlException

Определяет, разрешен или запрещен ли запрос доступа, указанный указанным разрешением, на основе текущей политики безопасности и контекста в этом объекте. Запрос разрешен только если каждый ProtectionDomain в контексте подразумевает разрешение. В противном случае запрос отклоняется.

Этот метод молча возвращает, если запрос доступа разрешен, или выбрасывает соответствующее AccessControlException в противном случае.

Параметры:
perm - запрошенное разрешение.
Исключения:
AccessControlException - если указанное разрешение не разрешено на основе текущей политики безопасности и контекста, инкапсулированного этим объектом.
NullPointerException - если проверяемое разрешение равно null.

equals

public boolean equals(Object obj)

Проверяет два объекта AccessControlContext на равенство. Проверяет, что obj является AccessControlContext и имеет тот же набор ProtectionDomains, что и этот контекст.

Переопределяет:
equals в классе Object
Параметры:
obj - объект, с которым мы проверяем равенство с этим объектом.
Возвращает:
true, если obj является AccessControlContext и имеет тот же набор ProtectionDomains, что и этот контекст, в противном случае false.
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает значение хэш-кода для этого контекста. Хэш-код вычисляется путем исключающего ИЛИ хэш-кодов всех областей защиты в контексте.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого контекста.
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

© 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/AccessControlContext.html

Spec-Zone .ru
спецификации, руководства, описания, API