|
Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface DomainCombiner
DomainCombiner обеспечивает средство динамически обновить ProtectionDomains, связанный с током AccessControlContext. A DomainCombiner передается в качестве параметра соответствующему конструктору для AccessControlContext. Недавно созданный контекст тогда передают к AccessController.doPrivileged(..., context) метод, чтобы ограничить обеспеченный контекст (и связанный DomainCombiner) с текущим Потоком выполнения. Последующие звонки AccessController.getContext или AccessController.checkPermission вызовите DomainCombiner.combine быть вызванным.
Объединить метод берет два параметра. Первый параметр представляет массив ProtectionDomains от текущего Потока выполнения, начиная с нового звонка AccessController.doPrivileged. Если никакой звонок doPrivileged не был сделан, то первый параметр будет содержать весь ProtectionDomains от текущего Потока выполнения. Второй параметр представляет массив наследованного ProtectionDomains, который может быть null. ProtectionDomains может быть наследован от родительского Потока, или от привилегированного контекста. Если никакой звонок doPrivileged не был сделан, то второй параметр будет содержать ProtectionDomains, наследованный от родительского Потока. Если один или более звонков doPrivileged были сделаны, и новый вызов был к doPrivileged (действие, контекст), то второй параметр будет содержать ProtectionDomains от привилегированного контекста. Если новый вызов был к doPrivileged (действие), то нет никакого привилегированного контекста, и второй параметр будет null.
combine метод исследует два входных массива ProtectionDomains и возвращает единственный массив, содержащий обновленный ProtectionDomains. В самом простом случае, combine метод объединяет два стека в одного. В более сложных случаях, combine метод возвращает измененный стек ProtectionDomains. Модификация, возможно, добавила новый ProtectionDomains, удалила определенный ProtectionDomains, или просто обновила существующий ProtectionDomains. Переупорядочение и другая оптимизация к ProtectionDomains также разрешается. Обычно combine метод базирует свои обновления об информации, инкапсулировавшей в DomainCombiner.
После AccessController.getContext метод получает объединенный стек ProtectionDomains назад от DomainCombiner, это возвращает новый AccessControlContext, у которого есть оба объединенный ProtectionDomains так же как DomainCombiner.
AccessController, AccessControlContext| Модификатор и Тип | Метод и Описание |
|---|---|
ProtectionDomain[] |
combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
Измените или обновите предоставленный ProtectionDomains.
|
ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
currentDomains - ProtectionDomains связался с текущим Потоком выполнения до привилегированного нового ProtectionDomain. ProtectionDomains, перечисляются в порядке выполнения, с последний раз выполнением ProtectionDomain нахожение в начале массива. Этот параметр может быть null если текущий Поток выполнения связал не ProtectionDomains.assignedDomains - массив наследованного ProtectionDomains. ProtectionDomains может быть наследован от родительского Потока, или от привилегированного AccessControlContext. Этот параметр может быть null если есть не наследованные ProtectionDomains.null.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92