|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.io
类 FilePermission
java.lang.Object java.security.Permission java.io.FilePermission
- 所有已实现的接口:
- Serializable, Guard
-
public final class FilePermission
- extends Permission
- implements Serializable
此类表示对文件和目录的访问。FilePermission 由文件名和对该路径名有效的操作集合组成。
路径名是授予指定操作的文件或目录的路径名。以 "/*"(其中 "/" 是文件分隔符字符,即 File.separatorChar
)结尾的路径名指示包含在该目录中的所有文件和目录。以 "/-" 结尾的路径名(递归地)指示包含在该目录中的所有文件和子目录。由特殊标记 "<<ALL FILES>>" 组成的路径名可匹配任何文件。
注:由单个 "*" 组成的路径名指示当前目录中的所有文件,而由单个 "-" 组成的路径名指示当前目录中的所有文件,并(递归地)指示包含在当前目录中的所有文件和子目录。
将所要授予的操作以字符串的形式传递给构造方法,该字符串包含由一个或多个用逗号分隔的关键字组成的列表。可能的关键字有 "read"、"write"、"execute" 和 "delete"。其含义定义如下:
- read
- 读权限
- write
- 写权限
- execute
-
执行权限。允许调用
Runtime.exec
。对应于SecurityManager.checkExec
。 - delete
-
删除权限。允许调用
File.delete
。对应于SecurityManager.checkDelete
。
处理前会将操作字符串转换为小写字母。
在授予 FilePermission 权限时要小心。在对各种文件和目录授予读访问权和(尤其是)写访问权时,一定要慎重。对写操作授予 "<<ALL FILES>>" 权限特别危险。这允许对整个文件系统进行写操作。事实上它甚至允许对系统中的二进制文件(包括 JVM 运行时环境)进行替换。
请注意:代码总是可以读取自身所在目录(或该目录的子目录)中的文件,不需要对其进行显式授权。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Permission
,Permissions
,PermissionCollection
构造方法摘要 | |
---|---|
FilePermission(String path, String actions) 创建具有指定操作的新 FilePermission 对象,path 是文件或目录的路径名,actions 包含对文件或目录授予的所需操作的列表,该列表由逗号分隔。 |
方法摘要 | |
---|---|
boolean |
equals(Object obj) 检查两个 FilePermission 对象是否相等。 |
String |
getActions() 返回操作的“规范化字符串表示形式”。 |
int |
hashCode() 返回此对象的哈希码值。 |
boolean |
implies(Permission p) 检查 FilePermission 对象是否“隐含”指定的权限。 |
PermissionCollection |
newPermissionCollection() 返回用于存储 FilePermission 对象的新 PermissionCollection 对象。 |
从类 java.security.Permission 继承的方法 |
---|
checkGuard, getName, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
FilePermission
public FilePermission(String path, String actions)
-
创建具有指定操作的新 FilePermission 对象,path 是文件或目录的路径名,actions 包含对文件或目录授予的所需操作的列表,该列表由逗号分隔。可能的操作是 "read"、"write"、"execute" 和 "delete"。
以 "/*"(其中 "/" 是文件分隔符,即
File.separatorChar
)结尾的路径名指示一个目录和包含在该目录中的所有文件。以 "/-" 结尾的路径名指示一个目录并(递归地)指示包含在该目录中的所有文件和子目录。特殊路径名 "<<ALL FILES>>" 与所有文件都匹配。由单个 "*" 组成的路径名指示当前目录中的所有文件,而由单个 "-" 组成的路径名指示当前目录中的所有文件,并(递归地)指示包含在当前目录中的所有文件和子目录。
- 参数:
-
path
- 文件/目录的路径名。 -
actions
- 操作字符串。
方法详细信息 |
---|
implies
public boolean implies(Permission p)
-
检查 FilePermission 对象是否“隐含”指定的权限。
更明确地说,如果此方法满足以下条件,则返回 true:
- p 是 FilePermission 的一个实例,
- p 的操作是此对象的操作的一个真子集,并且
- 此对象的路径名隐含 p 的路径名。例如,"/tmp/*" 隐含 "/tmp/foo",因为 "/tmp/*" 涵盖该目录中的 "/tmp" 目录和所有文件,包括命名为 "foo" 的文件。
-
- 指定者:
-
类
Permission
中的implies
-
- 参数:
-
p
- 所要检查的权限。 - 返回:
- 如果对象隐含指定的权限,则返回 true;否则返回 false。
equals
public boolean equals(Object obj)
- 检查两个 FilePermission 对象是否相等。检查 obj 是否是一个 FilePermission,是否与此对象具有相同的路径名和操作。
-
- 指定者:
-
类
Permission
中的equals
-
- 参数:
-
obj
- 要与此对象进行相等性测试的对象。 - 返回:
- 如果 obj 是一个 FilePermission,并且与此 FilePermission 对象具有相同的路径名和操作,则返回 true。
- 另请参见:
-
Object.hashCode()
,Hashtable
hashCode
public int hashCode()
- 返回此对象的哈希码值。
-
- 指定者:
-
类
Permission
中的hashCode
-
- 返回:
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,Hashtable
getActions
public String getActions()
-
返回操作的“规范化字符串表示形式”。也就是说,此方法总是以下列顺序返回存在的操作:read、write、execute、delete。例如,如果此 FilePermission 对象允许写和读操作,则调用
getActions
将返回字符串 "read,write"。 -
- 指定者:
-
类
Permission
中的getActions
-
- 返回:
- 操作的规范化字符串表示形式。
newPermissionCollection
public PermissionCollection newPermissionCollection()
-
返回用于存储 FilePermission 对象的新 PermissionCollection 对象。
FilePermission 对象必须以允许将它们按任意顺序插入集合的方式来存储,但同时也允许以有效(并一致)的方式实现 PermissionCollection 的
implies
方法。例如,如果有两个 FilePermissions:
"/tmp/-", &\quot;read"
"/tmp/scratch/foo", "write"
并且您正利用 FilePermission 权限调用
implies
方法:"/tmp/scratch/foo", "read,write",
那么implies
方法必须对 "/tmp/-" 和 "/tmp/scratch/foo" 这两种权限都进行考虑,因此有效权限是 "read,write",并且implies
返回 true。FilePermission 的 "implies" 语义由此newPermissionCollection
方法返回的 PermissionCollection 对象恰当地处理。 -
- 覆盖:
-
类
Permission
中的newPermissionCollection
-
- 返回:
- 适合存储 FilePermissions 的新 PermissionCollection 对象。
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |