JavaTM 2 Platform
Standard Ed. 6

java.security
類別 UnresolvedPermission

java.lang.Object
  繼承者 java.security.Permission
      繼承者 java.security.UnresolvedPermission
所有已實作的介面:
Serializable, Guard

public final class UnresolvedPermission
extends Permission
implements Serializable

UnresolvedPermission 類別用來保持初始化 Policy 時“未解析”的權限。未解析的權限是這樣的一種權限:初始化 Policy 時其實際 Permission 類別尚未存在(請參見以下內容)。

Java 運行時的策略(指定各種主體程式碼可用的權限)由 Policy 物件表示。每當初始化或刷新 Policy 時,都將為該 Policy 允許的所有權限創建相應類別的 Permission 物件。

策略配置參考的許多權限類別型別都是一些本機存在的型別(即一些可在 CLASSPATH 上找到的型別)。此類別權限的物件可在策略初始化期間實例化。例如,自從在 CLASSPATH 上找到 FilePermission 類別之後,始終可以實例化 java.io.FilePermission。

在 Policy 初始化期間,其他權限類別可能尚未存在。例如,參考的權限類別可能處在以後將載入的 JAR 檔案中。將對每個這樣的類別初始化 UnresolvedPermission。因此,UnresolvedPermission 實際上是一個套件含有關權限資訊的“佔位符”。

稍後,當程式碼在以前未解析、但其類別在那時已經載入的型別權限上調用 AccessController.checkPermission 時,該型別以前未解析的權限將被“解析”。也就是說,將基於 UnresolvedPermission 中的資訊,為每個這樣的 UnresolvedPermission 實例化一個新的相應類別型別的物件。

為了實例化此新類別,UnresolvedPermission 假定該類別提供了零、一個和/或兩個參數建構子。零參數建構子將用來實例化不帶有名稱和操作的權限。假定帶一個參數的建構子採用 String 名稱作為輸入;帶兩個參數的建構子採用 String 名稱和 String 操作作為輸入。UnresolvedPermission 可以調用帶有 null 名稱和/或操作的建構子。如果沒有提供適當的權限建構子,則將忽略 UnresolvedPermission,並且不會授予執行程式碼的相關權限。

新創建的權限物件取代 UnresolvedPermission,並將後者移除。

注意,用於 UnresolvedPermissiongetName 方法將返回尚未解析的基礎權限的 type(類別名稱)。

另請參見:
Permission, Permissions, PermissionCollection, Policy, 序列化表格

建構子摘要
UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
          在解析權限時,創建一個新的 UnresolvedPermission,使之包含稍後實際創建指定類別的 Permission 時所需的權限資訊。
 
方法摘要
 boolean equals(Object obj)
          檢查兩個 UnresolvedPermission 物件的相等性。
 String getActions()
          返回這些操作的規範的字元串表示形式,該字元串當前為空字元串 "",原因是沒有針對 UnresolvedPermission 的操作。
 String getUnresolvedActions()
          獲取尚未解析的基礎權限的操作。
 Certificate[] getUnresolvedCerts()
          獲取尚未解析的基礎權限的簽署者證書(無任何支持鏈)。
 String getUnresolvedName()
          獲取尚未解析的基礎權限的目標名稱。
 String getUnresolvedType()
          獲取尚未解析的基礎權限的型別(類別名稱)。
 int hashCode()
          返回此物件的雜湊碼值。
 boolean implies(Permission p)
          對於未解析的權限,此方法始終返回 false。
 PermissionCollection newPermissionCollection()
          返回存儲 UnresolvedPermission 物件的新 PermissionCollection 物件。
 String toString()
          返回描述此 UnresolvedPermission 的字元串。
 
從類別 java.security.Permission 繼承的方法
checkGuard, getName
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

UnresolvedPermission

public UnresolvedPermission(String type,
                            String name,
                            String actions,
                            Certificate[] certs)
在解析權限時,創建一個新的 UnresolvedPermission,使之包含稍後實際創建指定類別的 Permission 時所需的權限資訊。

參數:
type - 解析此未解析的權限時將創建的 Permission 類別的類別名稱。
name - 權限名稱。
actions - 對權限的操作。
certs - 用來為權限類別簽章的證書。這是一個證書鏈列表,其中每個鏈都是由簽署人證書和其可選的支持證書鏈構成。每個鏈都按從底到頂進行排序(即簽署人證書排在首位置,(根)證書授權排在末位置)。簽署人證書是從陣列中複製的。陣列的後續更改不會影響此 UnsolvedPermission。
方法詳細資訊

implies

public boolean implies(Permission p)
對於未解析的權限,此方法始終返回 false。也就是說,從不認為 UnresolvedPermission 暗含其他權限。

指定者:
類別 Permission 中的 implies
參數:
p - 所要檢查的權限。
返回:
false。

equals

public boolean equals(Object obj)
檢查兩個 UnresolvedPermission 物件的相等性。檢查 obj 是否為 UnresolvedPermission,是否具有與此物件相同的型別(類別)名稱、權限名稱、操作和證書。

為了確定證書是否相等,此方法僅比較實際簽署人證書。此方法沒有考慮對證書鏈的支持。

指定者:
類別 Permission 中的 equals
參數:
obj - 要與此物件進行相等性測試的物件。
返回:
如果 obj 是 UnresolvedPermission,並且具有與此物件相同的型別(類別)名稱、權限名稱、操作和證書,則返回 true。
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此物件的雜湊碼值。

指定者:
類別 Permission 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

getActions

public String getActions()
返回這些操作的規範的字元串表示形式,該字元串當前為空字元串 "",原因是沒有針對 UnresolvedPermission 的操作。也就是說,解析此 UnresolvedPermission 時將創建的權限的操作可以為非 null,但永遠不會認為 UnresolvedPermission 本身具有任何操作。

指定者:
類別 Permission 中的 getActions
返回:
空字元串 ""。

getUnresolvedType

public String getUnresolvedType()
獲取尚未解析的基礎權限的型別(類別名稱)。

返回:
獲取尚未解析的基礎權限的型別(類別名稱)
從以下版本開始:
1.5

getUnresolvedName

public String getUnresolvedName()
獲取尚未解析的基礎權限的目標名稱。

返回:
獲取尚未解析的基礎權限的目標名稱,如果沒有目標名稱,則返回 null
從以下版本開始:
1.5

getUnresolvedActions

public String getUnresolvedActions()
獲取尚未解析的基礎權限的操作。

返回:
尚未解析的基礎權限的操作,如果沒有操作,則返回 null
從以下版本開始:
1.5

getUnresolvedCerts

public Certificate[] getUnresolvedCerts()
獲取尚未解析的基礎權限的簽署者證書(無任何支持鏈)。

返回:
尚未解析的基礎權限的簽署者證書,如果沒有簽署者證書,則返回 null。每次調用此方法時都返回一個新的陣列。
從以下版本開始:
1.5

toString

public String toString()
返回描述此 UnresolvedPermission 的字元串。慣例是按以下形式指定類別名稱、權限名稱和操作:'(unresolved "ClassName" "name" "actions")'。

覆寫:
類別 Permission 中的 toString
返回:
與此 UnresolvedPermission 有關的資訊。

newPermissionCollection

public PermissionCollection newPermissionCollection()
返回存儲 UnresolvedPermission 物件的新 PermissionCollection 物件。

覆寫:
類別 Permission 中的 newPermissionCollection
返回:
適合存儲 UnresolvedPermissions 的新 PermissionCollection 物件。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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