java.lang.Object java.security.Permission javax.security.auth.PrivateCredentialPermission
public final class PrivateCredentialPermission
此类用来保护对属于特定 Subject
的私有 Credential 的访问。Subject
通过 Principals Set 表示。
此 Permission
的目标名称指定了一个 Credential 类名和一个 Principals Set。此 Permission 的操作的唯一有效值是 "read"。目标名称必须遵守下面的语法:
CredentialClass {PrincipalClass "PrincipalName"}*例如,下面的权限授予对 Subjects 拥有的 com.sun.PrivateCredential 的访问,该 Subjects 有一个 com.sun.Principal,名称为 "duke"。注意,尽管此例子(以及下面的所有例子)在 grant 语句中不包含 Codebase、SignedBy 或 Principal 信息(为了使例子简单),但是实际的策略配置在适当的时候应该指定该信息。
grant { permission javax.security.auth.PrivateCredentialPermission "com.sun.PrivateCredential com.sun.Principal \"duke\"", "read"; };如果 CredentialClass 为 "*",那么授予属于指定的
Subject
的所有 Credential 访问权限。如果 "PrincipalName" 为 "*",那么授予指定的由任何
Subject
拥有的 Credential 访问权限,此
Subject
具有指定的
Principal
(实际的 PrincipalName 无关紧要)。例如,下面的语句授予对任何有 a.b.Principal 的
Subject
所拥有的 a.b.Credential 访问权限。
grant { permission javax.security.auth.PrivateCredentialPermission "a.b.Credential a.b.Principal "*"", "read"; };如果 PrincipalClass 和 "PrincipalName" 都为 "*",那么授予由任何
Subject
拥有的指定的 Credential 访问权限。
另外,PrincipalClass/PrincipalName 对可以重复:
grant { permission javax.security.auth.PrivateCredentialPermission "a.b.Credential a.b.Principal "duke" c.d.Principal "dukette"", "read"; };上面的语句授予对私有 Credential("a.b.Credential")的访问权限,"a.b.Credential" 属于带有至少两个 Principals 的
Subject
:名称为 "duke" 的 "a.b.Principal",和名称为 "dukette" 的 "c.d.Principal"。
构造方法摘要 | |
---|---|
PrivateCredentialPermission(String name, String actions) 创建具有指定 name 的新 PrivateCredentialPermission 。 |
方法摘要 | |
---|---|
boolean |
equals(Object obj) 检查两个 PrivateCredentialPermission 对象是否相等。 |
String |
getActions() 返回操作的“规范的字符串表示形式”。 |
String |
getCredentialClass() 返回与此 PrivateCredentialPermission 相关联的 Credential 的 Class 名称。 |
String[][] |
getPrincipals() 返回与此 PrivateCredentialPermission 相关联的 Principal 类和名称。 |
int |
hashCode() 返回此对象的哈希码值。 |
boolean |
implies(Permission p) 检查此 PrivateCredentialPermission 是否暗含指定的Permission 。 |
PermissionCollection |
newPermissionCollection() 返回 PermissionCollection 中同类的 PrivateCredentialPermissions 集合。 |
从类 java.security.Permission 继承的方法 |
---|
checkGuard, getName, toString |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public PrivateCredentialPermission(String name, String actions)
name
的新
PrivateCredentialPermission
。
name
指定了一个 Credential 类和一个
Principal
集合。
name
- 指定 Credential 类和
Principal
集合的名称。
actions
- 指定 Credential 能够被读取的操作。
IllegalArgumentException
- 如果
name
没有遵循正确的语法或者如果
actions
不是 "read"。
方法详细信息 |
---|
public String getCredentialClass()
PrivateCredentialPermission
相关联的 Credential 的 Class 名称。
PrivateCredentialPermission
相关联的 Credential 的 Class 名称。
public String[][] getPrincipals()
PrivateCredentialPermission
相关联的
Principal
类和名称。信息以二维数组 (array[x][y]) 的形式返回。'x' 值对应于
Principal
的类和名称对的数目。当 (y==0) 时,它对应于
Principal
类值,当 (y==1) 时,它对应于
Principal
名称值。例如,array[0][0] 对应于数组中的第一个
Principal
的类名。array[0][1] 对应于数组中的第一个
Principal
的
Principal
名。
PrivateCredentialPermission
相关联的
Principal
类和名称。
public boolean implies(Permission p)
PrivateCredentialPermission
是否暗含指定的
Permission
。
如果满足下面的条件,则此方法返回 true:
[* P1 "duke"] implies [a.b.Credential P1 "duke"]. [C1 P1 "duke"] implies [C1 P1 "duke" P2 "dukette"]. [C1 P2 "dukette"] implies [C1 P1 "duke" P2 "dukette"].
Permission
中的
implies
p
- 所要检查的
Permission
。
PrivateCredentialPermission
隐含了指定的
Permission
,则返回 true;否则返回 false。
public boolean equals(Object obj)
PrivateCredentialPermission
对象是否相等。检查
obj 是否为
PrivateCredentialPermission
,是否与此对象具有相同的证书类以及相同的 Principals。在各自的 Permission 的目标名称中的 Principals 的顺序是无关的。
Permission
中的
equals
obj
- 要与此对象进行相等性测试的对象。
PrivateCredentialPermission
,与此对象具有相同的证书类以及相同的 Principals,则返回 true。
Object.hashCode()
,
Hashtable
public int hashCode()
Permission
中的
hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String getActions()
Permission
中的
getActions
public PermissionCollection newPermissionCollection()
PermissionCollection
中同类的 PrivateCredentialPermissions 集合。没有定义这种
PermissionCollection
,所以此方法总是返回
null
。
Permission
中的
newPermissionCollection