JavaTM 2 Platform
Standard Ed. 6

java.security
類別 AccessControlContext

java.lang.Object
  繼承者 java.security.AccessControlContext

public final class AccessControlContext
extends Object

AccessControlContext 用於基於它所封裝的上下文作出系統資源存取決定。

更確切地說,它封裝一個上下文並且具有單個方法 (checkPermission),該方法等效於 AccessController 類別中的 checkPermission 方法,只有一個不同點:AccessControlContext 的 checkPermission 方法基於它所封裝的上下文而不是當前執行執行緒的上下文作出存取決定。

因此,AccessControlContext 的目的是用於那些實際需要在另一個 上下文(例如,在 worker 執行緒中)中執行應該在給定上下文中進行的安全檢查的情形下。

AccessControlContext 通過調用 AccessController.getContext 方法創建。getContext 方法獲取當前調用上下文“快照”,並將其置於它所返回的 AccessControlContext 物件中。範例調用如下:

 
   AccessControlContext acc = AccessController.getContext()
 
 

另一上下文中的程式碼可以隨後在以前保存的 AccessControlContext 物件上調用 checkPermission 方法。範例調用如下:

 
   acc.checkPermission(permission)
 
 

另請參見:
AccessController

建構子摘要
AccessControlContext(AccessControlContext acc, DomainCombiner combiner)
          創建具有給定 AccessControlContextDomainCombiner 的新 AccessControlContext
AccessControlContext(ProtectionDomain[] context)
          創建帶有給定 ProtectionDomain 集合的 AccessControlContext。
 
方法摘要
 void checkPermission(Permission perm)
          基於當前生效的安全策略和此物件中的上下文確定是否允許指定權限指示的存取請求。
 boolean equals(Object obj)
          檢查兩個 AccessControlContext 物件是否相等。
 DomainCombiner getDomainCombiner()
          獲取與此 AccessControlContext 關聯的 DomainCombiner
 int hashCode()
          返回此上下文的雜湊碼值。
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

AccessControlContext

public AccessControlContext(ProtectionDomain[] context)
創建帶有給定 ProtectionDomain 集合的 AccessControlContext。上下文不能為 null。重複的域將從上下文中被移除。

參數:
context - 與此上下文關聯的 ProtectionDomain。從陣列複製非重複域。陣列的後續更改對此 AccessControlContext 沒有影響。

AccessControlContext

public AccessControlContext(AccessControlContext acc,
                            DomainCombiner combiner)
創建具有給定 AccessControlContextDomainCombiner 的新 AccessControlContext。此建構子將提供的 DomainCombiner 與提供的 AccessControlContext 關聯起來。

參數:
acc - 與此提供的 DomainCombiner 關聯的 AccessControlContext

combiner - 要與提供的 AccessControlContext 關聯的 DomainCombiner
拋出:
NullPointerException - 如果提供的 contextnull

SecurityException - 如果調用者沒有調用此建構子的權限。
從以下版本開始:
1.3
方法詳細資訊

getDomainCombiner

public DomainCombiner getDomainCombiner()
獲取與此 AccessControlContext 關聯的 DomainCombiner

返回:
與此 AccessControlContext 關聯的 DomainCombiner;如果關聯項不存在,則返回 null
拋出:
SecurityException - 如果調用者沒有獲取與此 AccessControlContext 關聯的 DomainCombiner 的權限。
從以下版本開始:
1.3

checkPermission

public void checkPermission(Permission perm)
                     throws AccessControlException
基於當前生效的安全策略和此物件中的上下文確定是否允許指定權限指示的存取請求。只有在上下文中每個 ProtectionDomain 都隱含該權限時,才允許該請求。否則拒絕該請求。

如果允許存取請求,則此方法正常返回;否則拋出適當的 AccessControlException。

參數:
perm - 請求的權限。
拋出:
AccessControlException - 如果基於當前的安全策略和此物件所封裝的上下文不允許指定權限。
NullPointerException - 如果要檢查的權限為 null。

equals

public boolean equals(Object obj)
檢查兩個 AccessControlContext 物件是否相等。檢查 obj 是否為 AccessControlContext 且具有與此上下文相同的 ProtectionDomain 集合。

覆寫:
類別 Object 中的 equals
參數:
obj - 要與此物件進行相等性測試的物件。
返回:
如果 obj 為 AccessControlContext 且具有與此上下文相同的 ProtectionDomain 集合,則返回 true;否則返回 false。
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此上下文的雜湊碼值。該雜湊碼是通過對上下文中所有保護域的雜湊碼進行異或計算得到的。

覆寫:
類別 Object 中的 hashCode
返回:
此上下文的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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