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