Класс AccessControlContext
- java.lang.Object
-
- java.security.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(ProtectionDomain[] context) |
Создает контекст доступа AccessControlContext с заданным массивом ProtectionDomains. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
checkPermission(Permission perm) |
Определяет, разрешен или запрещен ли запрос доступа, указанный указанным разрешением, на основе текущей политики безопасности и контекста в этом объекте. |
boolean |
equals(Object obj) |
Проверяет два объекта AccessControlContext на равенство. |
DomainCombiner |
getDomainCombiner() |
Получить |
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