public final class FilePermission extends Permission implements Serializable
路径名是授予指定操作的文件或目录的路径名。 以“/ *”结尾的路径名(其中“/”为文件分隔符File.separatorChar
)表示该目录中包含的所有文件和目录。 以“/ - ”结尾的路径名表示(递归)该目录中包含的所有文件和子目录。 由特殊令牌“<<所有文件>>”组成的路径名匹配任何文件。
注意:由单个“*”组成的路径名表示当前目录中的所有文件,而由单个“ - ”组成的路径名表示当前目录中的所有文件,并递归地显示当前目录中包含的所有文件和子目录目录。
要授予的操作将以包含一个或多个以逗号分隔的关键字的列表的字符串的形式传递给构造函数。 可能的关键字是“读取”,“写入”,“执行”,“删除”和“读取链接”。 其含义定义如下:
Runtime.exec
。
对应于SecurityManager.checkExec
。
File.delete
。
对应于SecurityManager.checkDelete
。
readSymbolicLink
方法可以读取symbolic link的目标。
操作字符串在处理之前转换为小写。
授予FilePermissions时要小心。 考虑授予读取和特别写入访问各种文件和目录的含义。 使用写入操作的“<<所有文件>>”权限特别危险。 这允许写入整个文件系统的权限。 有效的一件事是更换系统二进制文件,包括JVM运行时环境。
请注意:代码可以随时从同一目录中读取文件(或该目录的子目录); 它不需要明确的许可这样做。
Permission
, Permissions
, PermissionCollection
Constructor and Description |
---|
FilePermission(String path, String actions)
使用指定的操作创建一个新的FilePermission对象。
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
检查两个FilePermission对象是否相等。
|
String |
getActions()
返回动作的“规范字符串表示”。
|
int |
hashCode()
返回此对象的哈希码值。
|
boolean |
implies(Permission p)
检查此FilePermission对象是否“暗示”指定的权限。
|
PermissionCollection |
newPermissionCollection()
返回一个新的PermissionCollection对象,用于存储FilePermission对象。
|
checkGuard, getName, toString
public FilePermission(String path, String actions)
以“/ *”结尾的路径名(其中“/”是文件分隔符File.separatorChar
)表示该目录中包含的所有文件和目录。 以“/ - ”结尾的路径名表示(递归)该目录中包含的所有文件和子目录。 特殊路径名“<<所有文件>>”匹配任何文件。
由单个“*”组成的路径名表示当前目录中的所有文件,而由单个“ - ”组成的路径名表示当前目录中的所有文件,并递归地显示当前目录中包含的所有文件和子目录。
包含空字符串的路径名表示空的路径。
path
- 文件/目录的路径名。
actions
- 动作字符串。
IllegalArgumentException
- 如果操作为
null
,
null
空或包含除指定的可能操作之外的操作。
public boolean implies(Permission p)
更具体地说,这个方法返回true:
implies
在
Permission
类
p
- 允许检查。
true
如果指定的权限不是
null
并且由该对象暗示,
false
false。
public boolean equals(Object obj)
equals
在
Permission
obj
- 我们正在测试与此对象相等的对象。
true
如果obj是FilePermission,并且具有与该FilePermission对象相同的路径名和操作,
false
false。
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在
Permission
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String getActions()
getActions
将返回字符串“读取,写入”。
getActions
在
Permission
public PermissionCollection newPermissionCollection()
必须以允许以任何顺序将它们插入到集合中的方式存储FilePermission对象,但这也允许以有效(一致)的方式实现PermissionCollection implies
方法。
例如,如果您有两个FilePermissions:
"/tmp/-", "read"
"/tmp/scratch/foo", "write"
并且您正在使用implies
调用implies
方法:
"/tmp/scratch/foo", "read,write",
那么implies
功能必须考虑到“/ tmp / - ”和“/ tmp / scratch / foo”的权限,所以有效权限是“read,write”, implies
返回true。
FilePermissions的“暗示”语义由该newPermissionCollection
方法返回的PermissionCollection对象正确处理。
newPermissionCollection
在
Permission