javax.security.auth.kerberos

java.lang.Object
  继承者 java.security.Permission
      继承者 javax.security.auth.kerberos.ServicePermission
所有已实现的接口:
Serializable, Guard

public final class ServicePermission
     
extends Permission
implements Serializable

此类用于保护 Kerberos 服务和访问这些服务所必需的证书。服务主体与访问该服务所必需的证书之间存在一对一的映射关系。因此授予访问服务主体的权限隐含了授予访问使用该服务主体建立安全上下文所必需的证书的权限。不管证书是在缓存中还是通过与 KDC 交换获得的,这一规则都适用。证书可以是票据授权票据、服务票据或密钥表中的密钥。

ServicePermission 包含服务主体名称和指定可在其中使用证书的上下文的动作列表。

服务主体名称是提供服务的 KereberosPrincipal 的规范名称,也就是说 KerberosPrincipal 表示 Kerberos 服务主体。此名称是以区分大小写的方式处理的。星号可以单独出现,表示任何服务主体。

授予此权限暗示着调用者可以使用该动作指定的上下文中缓存的证书(TGT、服务票据或秘密密钥)。在证书为 TGT 的情况下,授予此权限还暗示着 TGT 可以通过 Authentication Service 交换获得。

可能的动作为:

initiate -  允许调用者使用证书来启动带有服务主体的安全上下文。

accept -  允许调用者使用证书来接受作为特定主体的安全上下文。

例如,指定访问 TGT 的权限来启动安全上下文,权限的构造如下:

     ServicePermission("krbtgt/EXAMPLE.COM@EXAMPLE.COM", "initiate");
 

为获取服务票据来启动带有 "host" 服务的上下文,权限的构造如下:

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "initiate");
 

对于 Kerberized 服务器,该动作为 "accept"。例如,访问和使用 Kerberized“主机”服务(telnet 以及类似服务)的秘密密钥的权限将被构造如下:

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "accept");
 

从以下版本开始:
1.4
另请参见:
序列化表格

构造方法摘要
ServicePermission(String servicePrincipal, String action)
          创建带指定的 servicePrincipalaction 的新 ServicePermission
 
方法摘要
 boolean equals(Object obj)
          检查两个 ServicePermission 对象是否相等。
 String getActions()
          返回动作的规范化字符串表示形式。
 int hashCode()
          返回此对象的哈希码值。
 boolean implies(Permission p)
          检查此 Kerberos 服务权限对象是否“隐含”指定的权限。
 PermissionCollection newPermissionCollection()
          返回用于存储 ServicePermission 对象的 PermissionCollection 对象。
 
从类 java.security.Permission 继承的方法
checkGuard, getName, toString
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

ServicePermission

public ServicePermission(String servicePrincipal,
                         String action)
创建带指定的 servicePrincipalaction 的新 ServicePermission

参数:
servicePrincipal - 服务主体的名称。星号可以单独出现,表示任何服务主体。

actions - 动作字符串。
方法详细信息

implies

public boolean implies(Permission p)
检查此 Kerberos 服务权限对象是否“隐含”指定的权限。

如果上述条件都不为 true,则 implies 返回 false。

指定者:
Permission 中的 implies
参数:
p - 所要检查的权限。
返回:
如果此对象隐含指定的权限,则返回 true;否则返回 false。

equals

public boolean equals(Object obj)
检查两个 ServicePermission 对象是否相等。

指定者:
Permission 中的 equals
参数:
obj - 要与此对象进行相等性测试的对象。
返回:
如果 obj 是一个 ServicePermission,并且与此 ServicePermission 对象具有相同的服务主体和动作,则返回 true。
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此对象的哈希码值。

指定者:
Permission 中的 hashCode
返回:
此对象的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

getActions

public String getActions()
返回动作的规范化字符串表示形式。始终按以下顺序返回存在的动作:initiate 和 accept。

指定者:
Permission 中的 getActions
返回:
此 Permission 的操作。

newPermissionCollection

public PermissionCollection newPermissionCollection()
返回用于存储 ServicePermission 对象的 PermissionCollection 对象。
ServicePermission 对象必须以允许将它们按任意顺序插入集合的方式来存储,但同时也允许以有效(并一致)的方式实现 PermissionCollection 的 implies 方法。

覆盖:
Permission 中的 newPermissionCollection
返回:
适合用来存储 ServicePermissions 的新的 PermissionCollection 对象。