Class ServicePermission

  • 实现的所有接口
    SerializableGuard

    public final class ServicePermission
    extends Permission
    implements Serializable
    此类用于保护Kerberos服务以及访问这些服务所需的凭据。 服务主体与访问服务所需的凭证之间存在一对一的映射。 因此,授予对服务主体的访问权限会隐式授予对与服务主体建立安全上下文所必需的凭证的访问权限。 无论凭据是在缓存中还是通过与KDC的交换获取,这都适用。 凭证可以是票证授予票证,服务票证或密钥表中的密钥。

    ServicePermission包含服务主体名称和操作列表,这些操作指定可在其中使用凭证的上下文。

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

    授予此权限意味着调用者可以在操作指定的上下文中使用缓存凭据(TGT,服务票证或密钥)。 在TGT的情况下,授予此权限还意味着可以通过身份验证服务交换获取TGT。

    授予此权限还意味着创建KerberosPrincipalGSSName而不提供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/[email protected]", "initiate"); 

    要获取服务票证以使用“host”服务启动上下文,权限的构造如下:

      ServicePermission("host/[email protected]", "initiate"); 

    对于Kerberized服务器,操作是“接受”。 例如,访问和使用Kerberized“主机”服务(telnet等)的密钥所需的权限将构造如下:

      ServicePermission("host/[email protected]", "accept"); 
    从以下版本开始:
    1.4
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • ServicePermission

        public ServicePermission​(String servicePrincipal,
                                 String action)
        创建一个新的 ServicePermission具有指定 servicePrincipalaction
        参数
        servicePrincipal - 服务主体的名称。 星号可以单独出现,表示任何服务主体。
        action - 动作字符串
    • 方法详细信息

      • implies

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

        更具体地说,如果满足以下所有条件,则此方法返回true(如果不是,则返回false):

        • pServicePermission的实例,
        • p的动作是这个ServicePermission动作的合适子集,
        • p的名字等于这个ServicePermission的名字或者这个ServicePermission的名字是“*”。
        Specified by:
        implies在类 Permission
        参数
        p - 要检查的权限。
        结果
        如果此对象隐含指定的权限,则返回true,否则返回false。
      • equals

        public boolean equals​(Object obj)
        检查两个ServicePermission对象是否相等。
        Specified by:
        equals ,类 Permission
        参数
        obj - 要测试与此对象是否相等的对象。
        结果
        如果 obj是ServicePermission,并且具有与此ServicePermission对象相同的服务主体和操作,则 obj true。
        另请参见:
        Object.hashCode()HashMap
      • getActions

        public String getActions()
        返回操作的规范字符串表示形式。 始终按以下顺序返回当前操作:启动,接受。
        Specified by:
        getActions在课堂上 Permission
        结果
        本许可的行为。
      • newPermissionCollection

        public PermissionCollection newPermissionCollection()
        返回用于存储ServicePermission对象的PermissionCollection对象。
        ServicePermission对象必须以允许它们以任何顺序插入集合的方式存储,但这也使PermissionCollection的方法能够以有效(和一致)的方式实现。
        重写:
        newPermissionCollection在类 Permission
        结果
        一个适合存储ServicePermissions的新PermissionCollection对象。