|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.Permission
public abstract class Permission
表示存取系統資源的抽象類別。所有權限都有一個名稱(對它們的解釋依賴於子類別),以及用來定義特定 Permission 子類別的語義的抽象方法。
大多數 Permission 物件也包含一個 "actions" 列表,它告知此物件上允許的操作。例如,對於 java.io.FilePermission
物件,權限名稱是檔案(或目錄)的路徑名,操作列表(如 "read, write")指定授予指定檔案(或指定目錄下的檔案)的操作。對於不需要此類別列表 Permission 物件(如 java.lang.RuntimePermission
),操作列表是可選的;可以有命名的權限(如 "system.exit"),也可以沒有。
每個子類別都必須實作的重要方法是 implies
方法,此方法用來比較 Permission。基本上,“權限 p1”暗含“權限 p2”意味著如果授予權限 p1,則自然授予權限 p2。因此,這不是相等性測試,而是子集測試。
Permission 物件和 String 物件的相似之處在於它們一經創建便不可改變。一旦創建了權限,子類別不應該提供能夠更改該權限狀態的方法。
Permissions
,
PermissionCollection
,
序列化表格建構子摘要 | |
---|---|
Permission(String name)
建構具有指定名稱的權限。 |
方法摘要 | |
---|---|
void |
checkGuard(Object object)
為某權限實作 guard 介面。 |
abstract boolean |
equals(Object obj)
檢查兩個 Permission 物件是否相等。 |
abstract String |
getActions()
以 String 的形式返回操作。 |
String |
getName()
返回此 Permission 的名稱。 |
abstract int |
hashCode()
返回此 Permission 物件的雜湊碼值。 |
abstract boolean |
implies(Permission permission)
檢查此物件的操作是否“暗含”指定權限的操作。 |
PermissionCollection |
newPermissionCollection()
對給定 Permission 物件返回空 PermissionCollection,如果沒有定義則返回 null。 |
String |
toString()
返回描述此 Permission 的字元串。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public Permission(String name)
name
- 將創建的 Permission 物件的名稱。方法詳細資訊 |
---|
public void checkGuard(Object object) throws SecurityException
SecurityManager.checkPermission
方法,將此權限物件作為要檢查的權限傳遞。如果准許存取,則正常返回。否則,拋出 SecurityException。
Guard
中的 checkGuard
object
- 將被保護的物件(當前忽略)。
SecurityException
- 如果安全管理器存在並且其 checkPermission
方法不允許存取。Guard
,
GuardedObject
,
SecurityManager.checkPermission(java.security.Permission)
public abstract boolean implies(Permission permission)
Permission 子類別必須實作此方法,因為它們是惟一能在 Permission 物件上施加語義的類別。
AccessController 使用 implies
方法來確定某個所請求的權限是否暗含於另一個在當前執行上下文中已知為有效的權限中。
permission
- 要依據其來檢查的權限。
public abstract boolean equals(Object obj)
不要使用 equals
方法做存取控制的決定;使用 implies
方法。
Object
中的 equals
obj
- 要與此物件進行相等性測試的物件。
Object.hashCode()
,
Hashtable
public abstract int hashCode()
Permission 物件所需的 hashCode
行為如下:
hashCode
方法超過一次,它都必須始終返回相同的整數。從某一應用程序的一次執行到同一應用程序的另一次執行,該整數無需保持一致。
equals
方法,兩個 Permission 物件是相等的,那麼在兩個 Permission 物件中的每個物件上調用 hashCode
方法必須產生相同的整數結果。
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public final String getName()
java.io.FilePermission
來說,名稱將是路徑名。
public abstract String getActions()
perm1 = new FilePermission(p1,"read,write"); perm2 = new FilePermission(p2,"write,read");當調用
getActions
方法時,兩者都返回 "read,write"。
public PermissionCollection newPermissionCollection()
PermissionCollection.implies
方法時能提供正確的語義,則它們應該覆寫此方法。如果返回 null,那麼此方法的調用方可以在任何它們選擇的 PermissionCollection(使用 Hashtable 的,使用 Vector 的,等等)中隨意存儲此型別的權限。
public String toString()
Object
中的 toString
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。