- 所有已实现的接口:
-
Serializable
,Guard
UnresolvedPermission
类用于保存在初始化策略时“未解析”的权限。 未解析的权限是指在初始化策略时实际权限类尚不存在的权限(请参见下文)。
Java运行时的策略(指定来自各种主体的代码的权限)由策略对象表示。 每当初始化或刷新策略时,将为策略允许的所有权限创建适当类的Permission对象。
策略配置引用的许多权限类类型是本地存在的(即可以在CLASSPATH上找到的权限类)。 可以在策略初始化期间实例化此类权限的对象。 例如,始终可以实例化java.io.FilePermission,因为FilePermission类可以在CLASSPATH上找到。
在策略初始化期间可能尚不存在其他权限类。 例如,引用的权限类可能在稍后加载的JAR文件中。 对于每个这样的类,都会实例化一个UnresolvedPermission
。 因此,UnresolvedPermission
本质上是一个包含有关权限信息的“占位符”。
稍后,当代码调用AccessController.checkPermission(java.security.Permission)
检查先前未解析但其类已加载的类型的权限时,先前未解析的该类型的权限将被“解析”。 也就是说,对于每个这样的UnresolvedPermission
,将根据UnresolvedPermission
中的信息实例化适当类类型的新对象。
为了实例化新类,UnresolvedPermission
假定该类提供零个、一个和/或两个参数的构造函数。 零参数构造函数将用于实例化没有名称和操作的权限。 假定一个参数构造函数接受一个String
名称作为输入,假定两个参数构造函数接受一个String
名称和String
操作作为输入。 UnresolvedPermission
可能调用具有null
名称和/或操作的构造函数。 如果适当的权限构造函数不可用,则将忽略UnresolvedPermission
,并且将不授予执行代码相关的权限。
新创建的权限对象将替换UnresolvedPermission
,并将其删除。
请注意,UnresolvedPermission
的getName
方法返回尚未解析的基础权限的type
(类名)。
- 自:
- 1.2
- 参见:
-
Constructor Summary
ConstructorDescriptionUnresolvedPermission
(String type, String name, String actions, Certificate[] certs) 创建一个新的UnresolvedPermission
,其中包含稍后实际创建指定类的Permission所需的权限信息,当权限被解析时。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
检查两个UnresolvedPermission
对象是否相等。返回操作的规范字符串表示形式,当前为空字符串"",因为UnresolvedPermission
没有操作。获取尚未解析的基础权限的操作。获取尚未解析的基础权限的签名证书(不包含任何支持链)。获取尚未解析的基础权限的目标名称。获取尚未解析的基础权限的类型(类名)。int
hashCode()
返回此对象的哈希码值。boolean
对于未解析的权限,此方法始终返回false
。返回用于存储UnresolvedPermission
对象的新PermissionCollection对象。toString()
返回描述此UnresolvedPermission
的字符串。Methods declared in class java.security.Permission
checkGuard, getName
-
Constructor Details
-
UnresolvedPermission
创建一个新的UnresolvedPermission
,其中包含稍后实际创建指定类的Permission所需的权限信息,当权限被解析时。- 参数:
-
type
- 将在解析此未解析权限时创建的Permission类的类名。 -
name
- 权限的名称。 -
actions
- 权限的操作。 -
certs
- 权限类签名的证书。 这是证书链的列表,其中每个链由签名证书和可选的支持证书链组成。 每个链按自下而上的顺序排序(即,签名证书在前,(根)证书颁发机构在后)。 签名证书从数组中复制。 对数组的后续更改不会影响此UnresolvedPermission。
-
-
Method Details
-
implies
对于未解析的权限,此方法始终返回false
。 也就是说,UnresolvedPermission
永远不被视为暗示另一个权限。- 指定者:
-
implies
在类Permission
- 参数:
-
p
- 要检查的权限。 - 返回:
-
false
。
-
equals
检查两个UnresolvedPermission
对象是否相等。 检查obj
是否为UnresolvedPermission
,并且具有与此对象相同的类型(类)名称、权限名称、操作和证书。为了确定证书的相等性,此方法仅比较实际签名证书。 不考虑支持证书链。
- 指定者:
-
equals
在类Permission
- 参数:
-
obj
- 我们正在测试与此对象相等的对象。 - 返回:
-
如果
obj
是UnresolvedPermission
,并且具有与此对象相同的类型(类)名称、权限名称、操作和证书,则返回true
。 - 参见:
-
hashCode
public int hashCode()返回此对象的哈希码值。- 指定者:
-
hashCode
在类Permission
- 返回:
- 此对象的哈希码值。
- 参见:
-
getActions
返回操作的规范字符串表示形式,当前为空字符串"",因为UnresolvedPermission
没有操作。 也就是说,当解析此UnresolvedPermission
时将创建的权限的操作可能为非空,但UnresolvedPermission
本身永远不被视为具有任何操作。- 指定者:
-
getActions
在类Permission
- 返回:
- 空字符串""。
-
getUnresolvedType
获取尚未解析的基础权限的类型(类名)。- 返回:
- 尚未解析的基础权限的类型(类名)
- 自:
- 1.5
-
getUnresolvedName
获取尚未解析的基础权限的目标名称。- 返回:
-
尚未解析的基础权限的目标名称,如果没有目标名称,则返回
null
- 自:
- 1.5
-
getUnresolvedActions
获取尚未解析的基础权限的操作。- 返回:
-
尚未解析的基础权限的操作,如果没有操作,则返回
null
。 - 自:
- 1.5
-
getUnresolvedCerts
获取尚未解析的基础权限的签名证书(不包含任何支持链)。- 返回:
-
尚未解析的基础权限的签名证书,如果没有签名证书,则返回
null
。 每次调用此方法时都会返回一个新数组。 - 自:
- 1.5
-
toString
返回描述此UnresolvedPermission
的字符串。 约定是以以下格式指定类名、权限名称和操作:'(unresolved "ClassName" "name" "actions")'。- 覆盖:
-
toString
在类Permission
- 返回:
-
关于此
UnresolvedPermission
的信息。
-
newPermissionCollection
返回用于存储UnresolvedPermission
对象的新PermissionCollection对象。- 覆盖:
-
newPermissionCollection
在类Permission
- 返回:
-
一个适合存储
UnresolvedPermissions
的新PermissionCollection对象。
-