Spec-Zone.ru › OpenJDK 17

Интерфейс 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, 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/DomainCombiner.html

Spec-Zone.ru

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