JavaTM 2 Platform
Standard Ed. 6

java.security
介面 DomainCombiner

所有已知實作類別:
SubjectDomainCombiner

public interface DomainCombiner

DomainCombiner 提供一個動態更新與當前 AccessControlContext 關聯的 ProtectionDomain 的方法。

DomainCombiner 作為參數傳遞給 AccessControlContext 的適當的建構子。然後,將新建構的上下文傳遞給 AccessController.doPrivileged(..., context) 方法來將提供的上下文(以及關聯的 DomainCombiner)與當前的執行執行緒綁定在一起。對 AccessController.getContextAccessController.checkPermission 的後續調用將導致對 DomainCombiner.combine 的調用。

combine 方法帶有兩個參數。第一個參數表示從最近一次調用 AccessController.doPrivileged 以來當前執行執行緒中 ProtectionDomain 的陣列。如果沒有調用 doPrivileged,則第一個參數將包含當前執行執行緒中的所有 ProtectionDomain。第二個參數表示繼承的 ProtectionDomain 的陣列,可能為 null。ProtectionDomain 可能是從父執行緒或特權上下文繼承的。如果沒有調用 doPrivileged,則第二個參數將包含從父執行緒繼承的 ProtectionDomain。如果對 doPrivileged 進行了一次或多次調用,並且最近一次調用的是 doPrivileged(action, context),那麼第二個參數將包含特權上下文中的 ProtectionDomain。如果最近一次調用的是 doPrivileged(action),則不存在特權上下文,第二個參數將為 null

combine 方法研究兩個 ProtectionDomain 的輸入陣列,返回包含更新的 ProtectionDomain 的單個陣列。在最簡單的情況下,combine 方法將兩個堆疊(stack)空間合併為一個。在較複雜的情況下,combine 方法返回 ProtectionDomain 的修改的堆疊(stack)空間。修改操作可能添加新的 ProtectionDomain、移除某些特定的 ProtectionDomain 或者只是更新現有的 ProtectionDomain。對 ProtectionDomain 重新排序及進行其他優化也是允許的。通常,combine 方法基於 DomainCombiner 中封裝的資訊進行更新。

AccessController.getContext 方法從 DomainCombiner 接收 ProtectionDomain 後備的組合堆疊(stack)空間後,它將返回包含組合 ProtectionDomain 和 DomainCombiner 的新 AccessControlContext。

從以下版本開始:
1.3
另請參見:
AccessController, AccessControlContext

方法摘要
 ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
          修改或更新提供的 ProtectionDomain。
 

方法詳細資訊

combine

ProtectionDomain[] combine(ProtectionDomain[] currentDomains,
                           ProtectionDomain[] assignedDomains)
修改或更新提供的 ProtectionDomain。可以將 ProtectionDomain 添加到給定的 ProtectionDomain 中,也可以從中移除。可以重新排列 ProtectionDomain 的順序。可以修改個別 ProtectionDomain(例如,利用新的 Permission 的集合)。

參數:
currentDomains - 與當前執行執行緒關聯的 ProtectionDomain,直到最近的特權 ProtectionDomain.ProtectionDomain 按執行的順序列出,最近執行的 ProtectionDomain 位於陣列的開頭。如果當前執行的執行緒沒有任何關聯的 ProtectionDomain,則此參數為 null

assignedDomains - 繼承的 ProtectionDomain 組成的陣列。ProtectionDomain 可能是從父執行緒或特權 AccessControlContext 繼承的。如果不存在任何繼承的 ProtectionDomain,則此參數為 null
返回:
由更新的 ProtectionDomain 組成的新陣列;或者 null

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only