Spec-Zone.ru › OpenJDK 21

Интерфейс DomainCombiner

Все известные реализующие классы:
SubjectDomainCombiner
@Deprecated(since="17", forRemoval=true) public interface DomainCombiner
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Этот класс полезен только в сочетании с менеджером безопасности, который устарел и подлежит удалению в будущей версии. Следовательно, этот класс также устарел и подлежит удалению. Замены для менеджера безопасности или этого класса нет.
Объект DomainCombiner предоставляет способ динамического обновления ProtectionDomains, связанных с текущим AccessControlContext.

Объект DomainCombiner передаётся в качестве параметра соответствующему конструктору AccessControlContext. Созданный контекст затем передаётся в метод AccessController.doPrivileged(..., context) для привязки предоставленного контекста (и связанных DomainCombiner) к текущему потоку выполнения. Последующие вызовы AccessController.getContext или AccessController.checkPermission вызывают вызов DomainCombiner.combine.

Метод combine принимает два аргумента. Первый аргумент представляет массив ProtectionDomains из текущего потока выполнения с момента последнего вызова AccessController.doPrivileged. Если вызов doPrivileged не производился, то первый аргумент будет содержать все ProtectionDomains из текущего потока выполнения. Второй аргумент представляет массив унаследованных ProtectionDomains, которые могут быть null. ProtectionDomains могут быть унаследованы от родительского потока или из привилегированного контекста. Если вызов doPrivileged не производился, то второй аргумент будет содержать ProtectionDomains, унаследованные от родительского потока. Если было выполнено одно или несколько вызовов doPrivileged, и последний вызов был doPrivileged(action, context), то второй аргумент будет содержать ProtectionDomains из привилегированного контекста. Если последний вызов был doPrivileged(action), то привилегированного контекста нет, и второй аргумент будет null.

Метод combine исследует два входных массива ProtectionDomains и возвращает единственный массив, содержащий обновлённые ProtectionDomains. В простом случае метод combine объединяет два стека в один. В более сложных случаях метод combine возвращает изменённый стек ProtectionDomains. Изменения могут включать добавление новых ProtectionDomains, удаление определённых ProtectionDomains или просто обновление существующих ProtectionDomains. Также разрешается изменение порядка и другие оптимизации ProtectionDomains. Обычно метод combine основывает свои обновления на информации, закодированной в DomainCombiner.

После того, как метод AccessController.getContext получит объединённый стек ProtectionDomains от DomainCombiner, он возвращает новый AccessControlContext, который содержит как объединённые ProtectionDomains, так и DomainCombiner.

С момента:
1.3
См. также:
  • AccessController
  • AccessControlContext

Краткое описание методов

Модификатор и тип Метод Описание
ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Изменяет или обновляет предоставленные ProtectionDomains.

Подробное описание методов

combine

ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
Устаревший, подлежит удалению: Этот элемент API может быть удален в будущей версии.
Изменяет или обновляет предоставленные ProtectionDomains. ProtectionDomains могут быть добавлены или удалены из предоставленных ProtectionDomains. ProtectionDomains могут быть переупорядочены. Отдельные ProtectionDomains могут быть изменены (например, с новым набором разрешений).
Параметры:
currentDomains - ProtectionDomains, связанные с текущим потоком выполнения до последнего привилегированного ProtectionDomain. ProtectionDomains перечислены в порядке выполнения, а последний выполняемый ProtectionDomain находится в начале массива. Этот параметр может быть null, если текущий поток выполнения не имеет связанных ProtectionDomains.
assignedDomains - массив унаследованных ProtectionDomains. ProtectionDomains могут быть унаследованы от родительского потока или из привилегированного AccessControlContext. Этот параметр может быть null, если нет унаследованных ProtectionDomains.
Возвращает:
новый массив, состоящий из обновлённых ProtectionDomains, или null.

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

Spec-Zone.ru

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