java.lang.Object javax.security.auth.kerberos.KerberosTicket
public class KerberosTicket
此类封装了 Kerberos 票据和从客户端的视点所观察到的有关信息。它捕获 Key Distribution Center (KDC) 发送给客端的所有信息,这些信息定义在 Kerberos 协议规范(RFC 1510) 中的应答消息 KDC-REP 中。
向 KDC 验证用户的所有 Kerberos JAAS 登录模块都应该使用此类。在可以使用的地方,登录模块甚至可以从操作系统的票据缓存中读取此信息,而不是直接与 KDC 通信。在 JAAS 验证过程的提交阶段,JAAS 登录模块应该实例化此类并将该实例存储在 Subject
的私有证书集中。
如果应用程序需要从 Subject 访问 KerberosTicket 实例,可能必须授予应用程序 PrivateCredentialPermission
权限。当应用程序依靠默认的 JGSS Kerberos 机制去访问 KerberosTicket 时,不需要此权限。但在这种情况下,应用程序将需要适当的 ServicePermission
权限。
注意此类适用于票据授权票据和其他的规则服务票据。票据授权票据就是更一般化的服务票据的特殊情况。
Subject
,
PrivateCredentialPermission
,
LoginContext
,
GSSCredential
,
GSSManager
,
序列化表格
构造方法摘要 | |
---|---|
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。 |
方法摘要 | |
---|---|
void |
destroy() 销毁票据和存储在其中的敏感信息。 |
boolean |
equals(Object other) 比较给定 Object 与此 KerberosTicket 的相等性。 |
Date |
getAuthTime() 返回客户端进行验证的时间。 |
KerberosPrincipal |
getClient() 返回与此票据有关联的客户端主体。 |
InetAddress[] |
getClientAddresses() 返回可从其所指位置使用票据的地址列表。 |
byte[] |
getEncoded() 返回整个票据的 ASN.1 编码。 |
Date |
getEndTime() 返回此票据有效期的期满时间。 |
boolean[] |
getFlags() 返回与此票据有关联的标志。 |
Date |
getRenewTill() 返回此票据最新的期满时间,包括所有的更新。 |
KerberosPrincipal |
getServer() 返回与此票据有关联的服务主体。 |
SecretKey |
getSessionKey() 返回与此票据有关联的会话密钥。 |
int |
getSessionKeyType() 返回与此票据有关联的会话密钥的密钥类型(由 Kerberos Protocol Specification 定义)。 |
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() 返回该对象的字符串表示。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
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
- 经过这段时间后票据将生效。将 authTime 的值视为 startTime 时,此值可以为 null。
endTime
- 经过这段时间后票据将不再有效
renewTill
- 票据的绝对过期时间,包括所有可能的更新。对于不可更新的票据,此字段可以为 null。
clientAddresses
- 客户端可以在其所指的位置使用票据的地址。如果票据在任何地址都是可用的,则此字段可以为 null。
方法详细信息 |
---|
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()
Refreshable
中的
isCurrent
Object
是当前的,则返回 true;否则,返回 false。
public void refresh() throws RefreshFailedException
Refreshable
中的
refresh
RefreshFailedException
- 如果票据是不可更新的,或已经超过了最新允许更新时间,抑或 KDC 返回了某些错误。
isRenewable()
,
getRenewTill()
public void destroy() throws DestroyFailedException
Destroyable
中的
destroy
DestroyFailedException
- 如果销毁操作失败。
public boolean isDestroyed()
Destroyable
中的
isDestroyed
Object
已经销毁,则返回 true;否则,返回 false。
public String toString()
Object
复制的描述
toString
方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object
类的 toString
方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@
”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
public int hashCode()
KerberosTicket
的 hashCode()
Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object other)
KerberosTicket
并且两个
KerberosTicket
相等,则返回 true。
other
- 要比较的 Object
Object.hashCode()
,
Hashtable