public abstract class Permission extends Object implements Guard, Serializable
大多数权限对象还包括一个告诉该对象允许的操作的“操作”列表。例如,一个java.io.FilePermission
对象权限的名字是一个文件的路径名(或目录),和行动清单(如“读、写”)指定哪些行为是授予指定的文件(或在指定目录下的文件)。行动清单是权限对象可选,如java.lang.RuntimePermission
,不需要那样的列表;你可以有命名的许可(如“系统退出”)或你不喜欢的。
必须在每个子类实现的一个重要方法是比较implies
权限的方法。基本上,“许可意味着允许P1 P2”意味着,如果一个人允许P1,一个自然是允许P2。因此,这不是一个平等的测试,而是更多的一个子集测试。
权限对象类似于字符串对象,当它们被创建时,它们是不可变的。子类不应该提供方法,它可以改变一个权限的状态,一旦它被创建。
Constructor and Description |
---|
Permission(String name)
用指定名称构造一个权限。
|
Modifier and Type | Method and Description |
---|---|
void |
checkGuard(Object object)
实现权限的保护接口。
|
abstract boolean |
equals(Object obj)
检查两个权限对象的相等性。
|
abstract String |
getActions()
返回字符串的动作。
|
String |
getName()
返回此权限的名称。
|
abstract int |
hashCode()
返回此权限对象的哈希代码值。
|
abstract boolean |
implies(Permission permission)
检查指定的权限的操作是否是“此对象的操作所暗示的”。
|
PermissionCollection |
newPermissionCollection()
返回一个空PermissionCollection对于一个给定的权限对象,或空如果不定义。
|
String |
toString()
返回描述此权限的字符串。
|
public Permission(String name)
name
-允许对象被创建的名字。
public void checkGuard(Object object) throws SecurityException
SecurityManager.checkPermission
方法被调用时,通过该权限对象的权限检查。如果访问是被授予的,则返回。否则,抛出SecurityException。
checkGuard
接口
Guard
object
-被保护对象(目前忽略)。
SecurityException
-如果存在一个安全管理及其
checkPermission
方法不允许访问。
Guard
,
GuardedObject
,
SecurityManager.checkPermission(java.security.Permission)
public abstract boolean implies(Permission permission)
这必须通过权限的子类来实现,因为它们是唯一可以在权限对象上强制执行语义的子类。
的implies
方法由AccessController用来确定是否一个请求是由另一个权限,称在当前执行的上下文中是有效的暗示。
permission
的权限检查。
public abstract boolean equals(Object obj)
不要使用equals
方法访问控制决策;使用implies
方法。
equals
方法重写,继承类
Object
obj
对象--我们为这个对象相等性测试。
Object.hashCode()
,
HashMap
public abstract int hashCode()
许可对象所需的hashCode
行为如下:
hashCode
必须始终返回相同的整数。这个整数不需要保持一致,从一个应用程序的一个执行到另一个执行相同的应用程序。equals
方法两个权限对象是相等的,那么调用hashCode
方法每一个权限对象必须产生相同的整数结果。hashCode
方法重写,继承类
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public final String getName()
java.io.FilePermission
的情况下,该名称是一个路径名。
public abstract String getActions()
perm1 =新filepermission(P1,“读、写”);perm2 =新filepermission(P2,“写、读”);都返回“读、写”的方法被调用时
getActions
。
public PermissionCollection newPermissionCollection()
PermissionCollection.implies
方法称为。如果返回null,那么方法的调用者自由存储任意PermissionCollection他们选择这种类型的权限(一个使用一个哈希表,一个使用一个向量,等)。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.