|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.security
类 UnresolvedPermission
java.lang.Object java.security.Permission java.security.UnresolvedPermission
- 所有已实现的接口:
- Serializable, Guard
-
public final class UnresolvedPermission
- extends Permission
- implements Serializable
UnresolvedPermission 类用来保持初始化 Policy 时“未解析”的权限。未解析的权限是这样的一种权限:初始化 Policy 时其实际 Permission 类尚未存在(请参见以下内容)。
Java 运行时的策略(指定各种主体代码可用的权限)由 Policy 对象表示。每当初始化或刷新 Policy 时,都将为该 Policy 允许的所有权限创建相应类的 Permission 对象。
策略配置引用的许多权限类类型都是一些本机存在的类型(即一些可在 CLASSPATH 上找到的类型)。此类权限的对象可在策略初始化期间实例化。例如,自从在 CLASSPATH 上找到 FilePermission 类之后,始终可以实例化 java.io.FilePermission。
在 Policy 初始化期间,其他权限类可能尚未存在。例如,引用的权限类可能处在以后将加载的 JAR 文件中。将对每个这样的类初始化 UnresolvedPermission。因此,UnresolvedPermission 实际上是一个包含有关权限信息的“占位符”。
稍后,当代码在以前未解析、但其类在那时已经加载的类型权限上调用 AccessController.checkPermission 时,该类型以前未解析的权限将被“解析”。也就是说,将基于 UnresolvedPermission 中的信息,为每个这样的 UnresolvedPermission 实例化一个新的相应类类型的对象。
为了实例化此新类,UnresolvedPermission 假定该类提供了零、一个和/或两个参数构造方法。零参数构造方法将用来实例化不带有名称和操作的权限。假定带一个参数的构造方法采用 String
名称作为输入;带两个参数的构造方法采用 String
名称和 String
操作作为输入。UnresolvedPermission 可以调用带有 null
名称和/或操作的构造方法。如果没有提供适当的权限构造方法,则将忽略 UnresolvedPermission,并且不会授予执行代码的相关权限。
新创建的权限对象取代 UnresolvedPermission,并将后者移除。
注意,用于 UnresolvedPermission
的 getName
方法将返回尚未解析的基础权限的 type
(类名称)。
- 另请参见:
-
Permission
,Permissions
,PermissionCollection
,Policy
, 序列化表格
构造方法摘要 | |
---|---|
UnresolvedPermission(String type, String name, String actions, Certificate[] certs) 在解析权限时,创建一个新的 UnresolvedPermission,使之包含稍后实际创建指定类的 Permission 时所需的权限信息。 |
方法摘要 | |
---|---|
boolean |
equals(Object obj) 检查两个 UnresolvedPermission 对象的相等性。 |
String |
getActions() 返回这些操作的规范的字符串表示形式,该字符串当前为空字符串 "",原因是没有针对 UnresolvedPermission 的操作。 |
String |
getUnresolvedActions() 获取尚未解析的基础权限的操作。 |
Certificate[] |
getUnresolvedCerts() 获取尚未解析的基础权限的签署者证书(无任何支持链)。 |
String |
getUnresolvedName() 获取尚未解析的基础权限的目标名称。 |
String |
getUnresolvedType() 获取尚未解析的基础权限的类型(类名称)。 |
int |
hashCode() 返回此对象的哈希码值。 |
boolean |
implies(Permission p) 对于未解析的权限,此方法始终返回 false。 |
PermissionCollection |
newPermissionCollection() 返回存储 UnresolvedPermission 对象的新 PermissionCollection 对象。 |
String |
toString() 返回描述此 UnresolvedPermission 的字符串。 |
从类 java.security.Permission 继承的方法 |
---|
checkGuard, getName |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
UnresolvedPermission
public UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
-
在解析权限时,创建一个新的 UnresolvedPermission,使之包含稍后实际创建指定类的 Permission 时所需的权限信息。
- 参数:
-
type
- 解析此未解析的权限时将创建的 Permission 类的类名称。 -
name
- 权限名称。 -
actions
- 对权限的操作。 -
certs
- 用来为权限类签名的证书。这是一个证书链列表,其中每个链都是由签署人证书和其可选的支持证书链构成。每个链都按从底到顶进行排序(即签署人证书排在首位置,(根)证书授权排在末位置)。签署人证书是从数组中复制的。数组的后续更改不会影响此 UnsolvedPermission。
方法详细信息 |
---|
implies
public boolean implies(Permission p)
- 对于未解析的权限,此方法始终返回 false。也就是说,从不认为 UnresolvedPermission 暗含其他权限。
-
- 指定者:
-
类
Permission
中的implies
-
- 参数:
-
p
- 所要检查的权限。 - 返回:
- false。
equals
public boolean equals(Object obj)
-
检查两个 UnresolvedPermission 对象的相等性。检查 obj 是否为 UnresolvedPermission,是否具有与此对象相同的类型(类)名称、权限名称、操作和证书。
为了确定证书是否相等,此方法仅比较实际签署人证书。此方法没有考虑对证书链的支持。
-
- 指定者:
-
类
Permission
中的equals
-
- 参数:
-
obj
- 要与此对象进行相等性测试的对象。 - 返回:
- 如果 obj 是 UnresolvedPermission,并且具有与此对象相同的类型(类)名称、权限名称、操作和证书,则返回 true。
- 另请参见:
-
Object.hashCode()
,Hashtable
hashCode
public int hashCode()
- 返回此对象的哈希码值。
-
- 指定者:
-
类
Permission
中的hashCode
-
- 返回:
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,Hashtable
getActions
public String getActions()
- 返回这些操作的规范的字符串表示形式,该字符串当前为空字符串 "",原因是没有针对 UnresolvedPermission 的操作。也就是说,解析此 UnresolvedPermission 时将创建的权限的操作可以为非 null,但永远不会认为 UnresolvedPermission 本身具有任何操作。
-
- 指定者:
-
类
Permission
中的getActions
-
- 返回:
- 空字符串 ""。
getUnresolvedType
public String getUnresolvedType()
- 获取尚未解析的基础权限的类型(类名称)。
-
-
- 返回:
- 获取尚未解析的基础权限的类型(类名称)
- 从以下版本开始:
- 1.5
getUnresolvedName
public String getUnresolvedName()
- 获取尚未解析的基础权限的目标名称。
-
-
- 返回:
-
获取尚未解析的基础权限的目标名称,如果没有目标名称,则返回
null
- 从以下版本开始:
- 1.5
getUnresolvedActions
public String getUnresolvedActions()
- 获取尚未解析的基础权限的操作。
-
-
- 返回:
-
尚未解析的基础权限的操作,如果没有操作,则返回
null
- 从以下版本开始:
- 1.5