- java.lang.Object
-
- java.security.Permission
-
- javax.security.auth.kerberos.ServicePermission
-
- 实现的所有接口
-
Serializable
,Guard
public final class ServicePermission extends Permission implements Serializable
此类用于保护Kerberos服务以及访问这些服务所需的凭据。 服务主体与访问服务所需的凭证之间存在一对一的映射。 因此,授予对服务主体的访问权限会隐式授予对与服务主体建立安全上下文所必需的凭证的访问权限。 无论凭据是在缓存中还是通过与KDC的交换获取,这都适用。 凭证可以是票证授予票证,服务票证或密钥表中的密钥。ServicePermission包含服务主体名称和操作列表,这些操作指定可在其中使用凭证的上下文。
服务主体名称是提供服务的
KerberosPrincipal
的规范名称,即KerberosPrincipal表示Kerberos服务主体。 此名称以区分大小写的方式处理。 星号可以单独出现,表示任何服务主体。授予此权限意味着调用者可以在操作指定的上下文中使用缓存凭据(TGT,服务票证或密钥)。 在TGT的情况下,授予此权限还意味着可以通过身份验证服务交换获取TGT。
授予此权限还意味着创建
KerberosPrincipal
或GSSName
而不提供Kerberos领域,只要权限的服务主体位于此领域即可。可能的行动是:
initiate - allow the caller to use the credential to initiate a security context with a service principal. accept - allow the caller to use the credential to accept security context as a particular principal.
例如,要指定访问TGT以启动安全上下文的权限,权限的构造如下:ServicePermission("krbtgt/EXAMPLE.COM@EXAMPLE.COM", "initiate");
要获取服务票证以使用“host”服务启动上下文,权限的构造如下:
ServicePermission("host/foo.example.com@EXAMPLE.COM", "initiate");
对于Kerberized服务器,操作是“接受”。 例如,访问和使用Kerberized“主机”服务(telnet等)的密钥所需的权限将构造如下:
ServicePermission("host/foo.example.com@EXAMPLE.COM", "accept");
- 从以下版本开始:
- 1.4
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 ServicePermission(String servicePrincipal, String action)
创建一个新的ServicePermission
具有指定servicePrincipal
和action
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
equals(Object obj)
检查两个ServicePermission对象是否相等。String
getActions()
返回操作的规范字符串表示形式。int
hashCode()
返回此对象的哈希码值。boolean
implies(Permission p)
检查此Kerberos服务权限对象是否“隐含”指定的权限。PermissionCollection
newPermissionCollection()
返回用于存储ServicePermission对象的PermissionCollection对象。-
声明方法的类 java.security.Permission
checkGuard, getName, toString
-
-
-
-
方法详细信息
-
implies
public boolean implies(Permission p)
检查此Kerberos服务权限对象是否“隐含”指定的权限。更具体地说,如果满足以下所有条件,则此方法返回true(如果不是,则返回false):
- p是
ServicePermission
的实例, - p的动作是这个
ServicePermission
动作的合适子集, - p的名字等于这个
ServicePermission
的名字或者这个ServicePermission
的名字是“*”。
- Specified by:
-
implies
在类Permission
- 参数
-
p
- 要检查的权限。 - 结果
- 如果此对象隐含指定的权限,则返回true,否则返回false。
- p是
-
equals
public boolean equals(Object obj)
检查两个ServicePermission对象是否相等。- Specified by:
-
equals
,类Permission
- 参数
-
obj
- 要测试与此对象是否相等的对象。 - 结果
-
如果
obj
是ServicePermission,并且具有与此ServicePermission对象相同的服务主体和操作,则obj
true。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此对象的哈希码值。- Specified by:
-
hashCode
在课堂上Permission
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
getActions
public String getActions()
返回操作的规范字符串表示形式。 始终按以下顺序返回当前操作:启动,接受。- Specified by:
-
getActions
在课堂上Permission
- 结果
- 本许可的行为。
-
newPermissionCollection
public PermissionCollection newPermissionCollection()
返回用于存储ServicePermission对象的PermissionCollection对象。
ServicePermission对象必须以允许它们以任何顺序插入集合的方式存储,但这也使PermissionCollection的方法能够以有效(和一致)的方式实现。- 重写:
-
newPermissionCollection
在类Permission
- 结果
- 一个适合存储ServicePermissions的新PermissionCollection对象。
-
-