public interface DomainCombiner
DomainCombiner动态更新与当前
AccessControlContext相关的protectiondomains提供了一种手段。
一个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
| Modifier and Type | Method and Description |
|---|---|
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。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.