java安全框架之Permission學習筆記


一、permission和security policy

    java.security.Permission代表一個訪問系統資源的系統資源的權限,perm = new java.io.FilePermission("/tmp/abc", "read"):這是一      個文件權限,是一個對“/tmp/abc”文件的“read”權限。

    public abstract boolean implies(Permission permission):一個實現這個方法的子類a的實例 a.implies(b):用來判斷是否有權限a,就     有權限b。有兩個類關聯了Permission類: 抽象類 java.security.PermissionCollection、final類 java.security.Permissions,前者代表       一個種類的權限集合(如:FilePermission),后者代表這種各樣的權限,維護一個保存PermissionCollection的map

    java.security.UnresolvedPermission:安全策略的內部狀態由與每個代碼源關聯的權限對象表示。然而,可能在初始化策略時,實現特     權限的代碼還沒有加載和定義,例如,引用的權限類可能位於稍后將加載的JAR文件中,UnresolvedPermission就是用來保存這               些,“未解析”的權限。進行權限檢查時,之前沒有解析的權限,這時已經解析了。也就是說,一個適當類型的新的對象已經初始化          了,這時就用這個新的對象替換已刪除的UnresolvedPermission

    java.io.FilePermission 

file
directory (same as directory/)
directory/file
directory/* (all files in this directory)
* (all files in the current directory)
directory/- (all files in the file system under this directory)
- (all files in the file system under the current directory)
"<<ALL FILES>>" (all files in the file system) ,在linux系統中代表all files under the root directory

implies判斷:是否擁有一個權限,就意味着擁有另一個權限FilePermission("/-", "read,execute") implies FilePermission("/home/gong/public_html/index.html", "read")

FilePermission p = new FilePermission("c:\\temp\\foo", "read"),使用轉義字符代表正確的字符串,比如:“\n”代表換行
解析出的路徑是:"c:\temp\foo"。
注意:
FilePermission p = new FilePermission("/home/gong/", "read"),只擁有列出"/home/gong/"目錄下的所有文件的權限,並沒有讀的
權限,想讀該目錄下的文件,還需使用"*"或者"-"。注意:代碼自動擁有讀寫當前目錄和子目錄下文件的權限。
 
        



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM