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