Класс AccessControlContext
@Deprecated(since="17", forRemoval=true) public final class AccessControlContext extends Object
Более конкретно, он инкапсулирует контекст и имеет единственный метод, checkPermission, который эквивалентен методу checkPermission в классе AccessController, с одним отличием: метод AccessControlContext checkPermission принимает решения о доступе на основе контекста, который он инкапсулирует, а не контекста текущей потоковой нити выполнения.
Таким образом, AccessControlContext предназначен для ситуаций, когда проверка безопасности, которая должна выполняться в рамках заданного контекста, фактически должна выполняться из другого контекста (например, из потока-рабочего).
Объект AccessControlContext создаётся путём вызова метода AccessController.getContext. Метод getContext делает «снимок» текущего контекста вызова и помещает его в объект AccessControlContext, который он возвращает. Пример вызова:
AccessControlContext acc = AccessController.getContext()
Код в другом контексте может впоследствии вызвать метод checkPermission на ранее сохранённом объекте AccessControlContext. Пример вызова:
acc.checkPermission(permission)
- Since:
- 1.2
- See Also:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AccessControlContext |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Создаёт новый AccessControlContext с заданными AccessControlContext и DomainCombiner. |
AccessControlContext |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Создаёт AccessControlContext с заданным массивом ProtectionDomains. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
checkPermission |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Определяет, следует ли разрешить или запретить запрос доступа, указанный заданным разрешением, на основе текущей политики безопасности и контекста в этом объекте. |
boolean |
equals |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Проверяет два объекта AccessControlContext на равенство. |
DomainCombiner |
getDomainCombiner() |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Получить DomainCombiner ассоциированный с этим AccessControlContext. |
int |
hashCode() |
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии. Возвращает значение хэш-кода для этого контекста. |
Подробное описание конструкторов
AccessControlContext
public AccessControlContext(ProtectionDomain[] context)
- Parameters:
-
context- ProtectionDomains, связанные с этим контекстом. Недублирующиеся домены копируются из массива. Последующие изменения в массиве не повлияют на этот AccessControlContext. - Throws:
-
NullPointerException- еслиcontextравенnull
AccessControlContext
public AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
AccessControlContext с заданным AccessControlContext и DomainCombiner. Этот конструктор связывает предоставленный DomainCombiner с предоставленным AccessControlContext.- Parameters:
-
acc-AccessControlContext, связанный с предоставленнымDomainCombiner. -
combiner-DomainCombiner, который будет связан с предоставленнымAccessControlContext. - Throws:
-
NullPointerException- если предоставленныйcontextравенnull. -
SecurityException- если установлен менеджер безопасности и у вызывающего объекта отсутствует разрешение "createAccessControlContext"SecurityPermission - Since:
- 1.3
Подробное описание методов
getDomainCombiner
public DomainCombiner getDomainCombiner()
DomainCombiner , связанный с этим AccessControlContext.- Returns:
DomainCombiner, связанный с этимAccessControlContext, илиnull, если его нет.- Throws:
-
SecurityException- если установлен менеджер безопасности и у вызывающего объекта отсутствует разрешение "getDomainCombiner"SecurityPermission - Since:
- 1.3
checkPermission
public void checkPermission(Permission perm) throws AccessControlException
Этот метод молчаливо возвращает, если запрос доступа разрешён, или вызывает соответствующее AccessControlException в противном случае.
- Parameters:
-
perm- запрашиваемое разрешение. - Throws:
-
AccessControlException- если указанное разрешение не разрешено на основе текущей политики безопасности и контекста, инкапсулированного этим объектом. -
NullPointerException- если разрешение для проверки равно null.
equals
public boolean equals(Object obj)
obj является объектом AccessControlContext и имеет тот же набор ProtectionDomains, что и этот контекст.- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект, с которым мы проверяем равенство с этим объектом. - Returns:
- true, если
objявляется объектом AccessControlContext и имеет тот же набор ProtectionDomains, что и этот контекст; false в противном случае. - See Also:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Returns:
- значение хэш-кода для этого контекста.
- See Also:
© 1993, 2021, 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/17/docs/api/java.base/java/security/AccessControlContext.html