java.lang.Object
java.security.Permission
- 所有已实现的接口:
Serializable,Guard
- 已知子类:
AllPermission,BasicPermission,CardPermission,FilePermission,MBeanPermission,PrivateCredentialPermission,ServicePermission,SocketPermission,UnresolvedPermission,URLPermission
表示对系统资源的访问的抽象类。所有权限都有一个名称(其解释取决于子类),以及用于定义特定权限子类的语义的抽象函数。
大多数 Permission 对象还包括一个“操作”列表,告诉该对象允许的操作。例如,对于java.io.FilePermission对象,权限名称是文件(或目录)的路径名,而操作列表(如“读、写”)指定了对指定文件(或目录中的文件)授予哪些操作指定目录)。操作列表对于 Permission 对象是可选的,例如 java.lang.RuntimePermission ,不需要这样的列表;您要么拥有命名权限(例如“system.exit”),要么没有。
每个子类必须实现的一个重要方法是比较权限的implies方法。基本上,“permission p1 implies permission p2”意味着如果一个人被授予权限p1,那么一个人自然被授予权限p2。因此,这不是相等性测试,而是更多的子集测试。
Permission 对象与 String 对象相似,因为它们一旦创建就不可更改。子类不应提供可以在权限创建后更改权限状态的方法。
- 自从:
- 1.2
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidcheckGuard(Object object) 实现权限的守卫接口。abstract boolean检查两个Permission对象是否相等。abstract String将操作作为String返回。final StringgetName()返回此Permission的名称。abstract inthashCode()返回此Permission对象的哈希码值。abstract booleanimplies(Permission permission) 检查指定权限的操作是否“隐含”于此对象的操作。为给定的Permission对象返回空的PermissionCollection,如果未定义,则返回null。toString()返回描述此Permission的字符串。
-
构造方法详细信息
-
Permission
构造具有指定名称的权限。- 参数:
name- 正在创建的Permission对象的名称。
-
-
方法详情
-
checkGuard
实现权限的守卫接口。SecurityManager.checkPermission方法被调用,将此权限对象作为要检查的权限传递。如果授予访问权限,则静默返回。否则,抛出一个SecurityException。- 指定者:
checkGuard在接口Guard中- 参数:
object- 被保护的对象(当前被忽略)。- 抛出:
SecurityException- 如果安全管理器存在且其checkPermission方法不允许访问。- 参见:
-
implies
检查指定权限的操作是否“隐含”于此对象的操作。这必须由
Permission的子类实现,因为它们是唯一可以对Permission对象施加语义的子类。implies方法由 AccessController 用于确定请求的权限是否由已知在当前执行上下文中有效的另一个权限暗示。- 参数:
permission- 检查的权限。- 返回:
true如果此对象隐含了指定的权限,false如果不是。
-
equals
检查两个Permission对象是否相等。不要使用
equals方法来做出访问控制决策;使用implies方法。 -
hashCode
public abstract int hashCode()返回此Permission对象的哈希码值。Permission对象所需的hashCode行为如下:- 每当在 Java 应用程序执行期间对同一
Permission对象多次调用时,hashCode方法必须一致地返回相同的整数。从一个应用程序的一次执行到同一应用程序的另一次执行,该整数不需要保持一致。 - 如果根据
equals方法两个Permission对象相等,则对两个Permission对象中的每一个调用hashCode方法必须产生相同的整数结果。
- 每当在 Java 应用程序执行期间对同一
-
getName
返回此Permission的名称。例如,在java.io.FilePermission的情况下,名称将是路径名。- 返回:
-
这个
Permission的名字。
-
getActions
将操作作为String返回。这是抽象的,因此子类可以推迟创建String表示,直到需要一个。子类应该总是以他们认为是规范的形式返回动作。例如,通过以下方式创建的两个 FilePermission 对象:perm1 = new FilePermission(p1,"read,write"); perm2 = new FilePermission(p2,"write,read");
在调用getActions方法时都返回“read,write”。- 返回:
-
这个
Permission的动作。
-
newPermissionCollection
为给定的Permission对象返回空的PermissionCollection,如果未定义,则返回null。如果Permission类的子类需要将其权限存储在特定的PermissionCollection对象中,以便在调用PermissionCollection.implies方法时提供正确的语义,则它们应覆盖此方法。如果返回null,则此方法的调用者可以自由地将此类型的权限存储在他们选择的任何PermissionCollection中(使用 Hashtable 的,使用 Vector 的,等等)。- 返回:
-
此类
Permission的新PermissionCollection对象,如果未定义,则为null。
-
toString
返回描述此Permission的字符串。约定是以下列格式指定类名称、权限名称和操作:'("ClassName" "name" "actions")',或者 '("ClassName" "name")' 如果操作列表是null或为空。
-