public class KerberosTicket extends Object implements Destroyable, Refreshable, Serializable
将用户认证到KDC的所有Kerberos JAAS登录模块都应该使用此类。 如果可用,登录模块甚至可能从操作系统中的故障单缓存中读取此信息,而不是直接与KDC进行通信。 在JAAS认证过程的提交阶段,JAAS登录模块应该实例化这个类和实例存储在设置的专用凭证Subject
。
如果应用程序需要从主题访问KerberosTicket实例,则可能需要授予应用程序PrivateCredentialPermission
。 当应用程序依赖于默认的JGSS Kerberos机制来访问KerberosTicket时,不需要此权限。 但是在这种情况下,应用程序将需要适当的ServicePermission
。
请注意,本课程适用于两张票授予票和其他常规服务票。 机票授予票只是一个更广泛的服务票的特例。
Subject
, PrivateCredentialPermission
, LoginContext
, GSSCredential
, GSSManager
, Serialized Form
Constructor and Description |
---|
KerberosTicket(byte[] asn1Encoding, KerberosPrincipal client, KerberosPrincipal server, byte[] sessionKey, int keyType, boolean[] flags, Date authTime, Date startTime, Date endTime, Date renewTill, InetAddress[] clientAddresses)
使用客户端从KDC接收或从缓存读取的凭据信息构造KerberosTicket。
|
Modifier and Type | Method and Description |
---|---|
void |
destroy()
销毁票据并销毁其中存储的任何敏感信息。
|
boolean |
equals(Object other)
将指定的对象与此KerberosTicket进行比较以获得相等性。
|
Date |
getAuthTime()
返回客户端进行身份验证的时间。
|
KerberosPrincipal |
getClient()
返回与此票证相关联的客户主体。
|
InetAddress[] |
getClientAddresses()
返回可以使用票证的地址列表。
|
byte[] |
getEncoded()
返回整个票证的ASN.1编码。
|
Date |
getEndTime()
返回此票证的有效期的到期时间。
|
boolean[] |
getFlags()
返回与此票证相关联的标志。
|
Date |
getRenewTill()
返回此机票的最新到期时间,包括所有续订。
|
KerberosPrincipal |
getServer()
返回与此票证相关联的服务主体。
|
SecretKey |
getSessionKey()
返回与此故障单关联的会话密钥。
|
int |
getSessionKeyType()
返回由Kerberos协议规范定义的与此故障单关联的会话密钥的密钥类型。
|
Date |
getStartTime()
返回此票证有效期的开始时间。
|
int |
hashCode()
返回此KerberosTicket的哈希码。
|
boolean |
isCurrent()
确定这张票是否仍然是最新的。
|
boolean |
isDestroyed()
确定这张票是否已被销毁。
|
boolean |
isForwardable()
确定此机票是否可转发。
|
boolean |
isForwarded()
确定这张票是否已经转发或基于涉及转发的票证授予票证的认证。
|
boolean |
isInitial()
确定是否使用Kerberos AS-Exchange协议发出此机票,而不是根据一些票证授予票据发出。
|
boolean |
isPostdated()
确定这张票是过时的。
|
boolean |
isProxiable()
确定这张票是否可以投票。
|
boolean |
isProxy()
确定这张票是一张代理机票。
|
boolean |
isRenewable()
确定这张票是可续期的。
|
void |
refresh()
延长此票的有效期。
|
String |
toString()
返回对象的字符串表示形式。
|
public KerberosTicket(byte[] asn1Encoding, KerberosPrincipal client, KerberosPrincipal server, byte[] sessionKey, int keyType, boolean[] flags, Date authTime, Date startTime, Date endTime, Date renewTill, InetAddress[] clientAddresses)
asn1Encoding
- 由Kerberos协议规范定义的票证的ASN.1编码。
client
- 拥有此服务票证的客户端
server
- 这张票的服务
sessionKey
- 必须用于加密将被发送到服务器的认证器的会话密钥的原始字节
keyType
- 由Kerberos协议规范定义的会话密钥的密钥类型。
flags
- 票标。
该数组中的每个元素表示ASN.1 BitString中代表票证标志的相应位的值。
如果此数组中的元素数小于Kerberos协议使用的标志数,则将使用false填充缺少的标志。
authTime
- 客户端初始认证的时间
startTime
- 机票有效的时间。
这可能为null,在这种情况下,authTime的值被视为startTime。
endTime
- 票不再有效的时间
renewTill
- 机票的绝对过期时间,包括所有可能的更新。
对于不可续期的门票,此字段可能为空。
clientAddresses
- 客户可以使用机票的地址。
票据可以从任何地址使用时,该字段可能为空。
public final KerberosPrincipal getClient()
public final KerberosPrincipal getServer()
public final SecretKey getSessionKey()
public final int getSessionKeyType()
getSessionKey()
public final boolean isForwardable()
public final boolean isForwarded()
public final boolean isProxiable()
public final boolean isProxy()
public final boolean isPostdated()
public final boolean isRenewable()
refresh
方法,假设更新的有效期尚未结束。
public final boolean isInitial()
public final boolean[] getFlags()
public final Date getAuthTime()
public final Date getStartTime()
public final Date getEndTime()
public final Date getRenewTill()
public final InetAddress[] getClientAddresses()
public final byte[] getEncoded()
public boolean isCurrent()
isCurrent
在界面
Refreshable
Object
是当前的,则为true,否则为false。
public void refresh() throws RefreshFailedException
refresh
在界面
Refreshable
RefreshFailedException
- 如果机票不可续订,或最近允许的续订时间已过,或KDC返回一些错误。
isRenewable()
,
getRenewTill()
public void destroy() throws DestroyFailedException
destroy
在界面
Destroyable
DestroyFailedException
- 如果破坏操作失败。
public boolean isDestroyed()
isDestroyed
在界面
Destroyable
Object
已被销毁,则为true,否则为false。
public String toString()
Object
复制
toString
方法返回一个“textually代表”这个对象的字符串。
结果应该是一个简明扼要的表达,容易让人阅读。
建议所有子类覆盖此方法。
该toString
类方法Object
返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@
”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public int hashCode()
hashCode
在类别
Object
KerberosTicket
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public boolean equals(Object other)
KerberosTicket
,并且两个KerberosTicket
实例是等价的,则返回true。
equals
在类别
Object
other
- 要比较的对象
Object.hashCode()
, HashMap