JavaTM 2 Platform
Standard Ed. 6

javax.security.auth.kerberos
類別 KerberosTicket

java.lang.Object
  繼承者 javax.security.auth.kerberos.KerberosTicket
所有已實作的介面:
Serializable, Destroyable, Refreshable

public class KerberosTicket
extends Object
implements Destroyable, Refreshable, Serializable

此類別封裝了 Kerberos 票據和從客戶端的視點所觀察到的有關資訊。它捕獲 Key Distribution Center (KDC) 發送給客端的所有資訊,這些資訊定義在 Kerberos 協議規範(RFC 1510) 中的應答訊息 KDC-REP 中。

向 KDC 驗證使用者的所有 Kerberos JAAS 登錄模組都應該使用此類別。在可以使用的地方,登錄模組甚至可以從作業系統的票據快取記憶體中讀取此資訊,而不是直接與 KDC 通信。在 JAAS 驗證過程的提交階段,JAAS 登錄模組應該實例化此類別並將該實例存儲在 Subject 的私有證書集中。

如果應用程序需要從 Subject 存取 KerberosTicket 實例,可能必須授予應用程序 PrivateCredentialPermission 權限。當應用程序依靠預設的 JGSS Kerberos 機制去存取 KerberosTicket 時,不需要此權限。但在這種情況下,應用程序將需要適當的 ServicePermission 權限。

注意此類別適用於票據授權票據和其他的規則服務票據。票據授權票據就是更一般化的服務票據的特殊情況。

從以下版本開始:
1.4
另請參見:
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()
          返回與此票據有關聯的Session密鑰。
 int getSessionKeyType()
          返回與此票據有關聯的Session密鑰的密鑰型別(由 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
 

建構子詳細資訊

KerberosTicket

public 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。

參數:
asn1Encoding - Kerberos 協議規範定義的票據的 ASN.1 編碼
client - 擁有此服務票據的客戶端
server - 適用此票據的服務
sessionKey - 必須用來加密將要發送給伺服器的授權者的Session密鑰的原始位元組
keyType - Kerberos 協議規範定義的Session密鑰的密鑰型別。
flags - 票據標誌。此陣列中的每個元素指示表示票據標誌的 ASN.1 BitString 中的相應位值。如果此陣列中的元素的數量小於 Kerberos 協議使用的標誌的數量,則將丟失的標記填充為 false。
authTime - 客戶端的初始驗證時間
startTime - 經過這段時間後票據將生效。將 authTime 的值視為 startTime 時,此值可以為 null。
endTime - 經過這段時間後票據將不再有效
renewTill - 票據的絕對過期時間,包括所有可能的更新。對於不可更新的票據,此欄位可以為 null。
clientAddresses - 客戶端可以在其所指的位置使用票據的位址。如果票據在任何位址都是可用的,則此欄位可以為 null。
方法詳細資訊

getClient

public final KerberosPrincipal getClient()
返回與此票據有關聯的客戶端主體。

返回:
客戶端主體。

getServer

public final KerberosPrincipal getServer()
返回與此票據有關聯的服務主體。

返回:
服務主體。

getSessionKey

public final SecretKey getSessionKey()
返回與此票據有關聯的Session密鑰。

返回:
Session密鑰。

getSessionKeyType

public final int getSessionKeyType()
返回與此票據有關聯的Session密鑰的密鑰型別(由 Kerberos Protocol Specification 定義)。

返回:
與此票據關聯的Session密鑰的密鑰型別。
另請參見:
getSessionKey()

isForwardable

public final boolean isForwardable()
確定此票據是否是可轉發的。

返回:
如果此票據是可轉發的,則返回 true;否則返回 false。

isForwarded

public final boolean isForwarded()
根據驗證(包括轉發的票據授權票據)確定此票據是否已經轉發或發出。

返回:
如果根據涉及轉發的票據授權票據的驗證確定此票據已經轉發或發出,則返回 true;否則返回 false。

isProxiable

public final boolean isProxiable()
確定此票據是否是可代理的。

返回:
如果此票據是可代理的,則返回 true;否則返回 false。

isProxy

public final boolean isProxy()
確定此票據是否是代理票據。

返回:
如果此票據是代理票據,則返回 true;否則返回 false。

isPostdated

public final boolean isPostdated()
確定此票據是否是延後的。

返回:
如果此票據是延後的,則返回 true;否則返回 false。

isRenewable

public final boolean isRenewable()
確定此票據是否是可更新的。如果是可更新的,則調用 refresh 方法,假定更新的有效期還沒有結束。

返回:
如果此票據是可更新的,則返回 true;否則返回 false。

isInitial

public final boolean isInitial()
確定此票據是否是使用 Kerberos AS-Exchange 協議發出的,而不是根據某些票據授權票據發出的。

返回:
如果此票據是使用 Kerberos AS-Exchange 協議發出的,則返回 true;否則返回 false。

getFlags

public final boolean[] getFlags()
返回與此票據有關聯的標誌。返回陣列中的每個元素指示表示票據標誌的 ASN.1 BitString 中的相應位值。

返回:
與此票據有關聯的標誌。

getAuthTime

public final Date getAuthTime()
返回客戶端進行驗證的時間。

返回:
對客戶端進行驗證的時間;如果未設置,則返回 null。

getStartTime

public final Date getStartTime()
返回此票據有效期的開始時間。

返回:
此票據有效期的開始時間;如果未設置,則返回 null。

getEndTime

public final Date getEndTime()
返回此票據有效期的期滿時間。

返回:
此票據有效期的期滿時間。

getRenewTill

public final Date getRenewTill()
返回此票據最新的期滿時間,包括所有的更新。對於不可更新的票據將返回 null 值。

返回:
此票據最新的期滿時間。

getClientAddresses

public final InetAddress[] getClientAddresses()
返回可從其所指位置使用票據的位址列表。

返回:
位址列表,如果沒有提供此欄位,則返回 null。

getEncoded

public final byte[] getEncoded()
返回整個票據的 ASN.1 編碼。

返回:
整個票據的 ASN.1 編碼。

isCurrent

public boolean isCurrent()
確定此票據是否仍舊是當前的。

指定者:
介面 Refreshable 中的 isCurrent
返回:
如果此 Object 是當前的,則返回 true;否則,返回 false。

refresh

public void refresh()
             throws RefreshFailedException
延長此票據的有效期。如果刷新操作成功,則票據將包含一個新的Session密鑰。如果票據是不可更新的或已經超出最新允許更新時間,則刷新操作將失敗。任何由 KDC 返回的其他錯誤都將導致此方法失敗。 註:此方法與此物件的 accessor 方法不是同步的。因此調用者需要意識到有多個執行緒可能存取此方法並試圖在同一時間更新它。

指定者:
介面 Refreshable 中的 refresh
拋出:
RefreshFailedException - 如果票據是不可更新的,或已經超過了最新允許更新時間,抑或 KDC 返回了某些錯誤。
另請參見:
isRenewable(), getRenewTill()

destroy

public void destroy()
             throws DestroyFailedException
銷毀票據和存儲在其中的敏感資訊。

指定者:
介面 Destroyable 中的 destroy
拋出:
DestroyFailedException - 如果銷毀操作失敗。


isDestroyed

public boolean isDestroyed()
確定是否已經銷毀此票據。

指定者:
介面 Destroyable 中的 isDestroyed
返回:
如果此 Object 已經銷毀,則返回 true;否則,返回 false。

toString

public String toString()
從類別 Object 複製的描述
返回該物件的字元串表示。通常,toString 方法會返回一個「以文本方式表示」此物件的字元串。結果應是一個簡明但易於讀懂的資訊表達式。建議所有子類別都覆寫此方法。

Object 類別的 toString 方法返回一個字元串,該字元串由類別名(物件是該類別的一個實例)、at 標記符“@”和此物件雜湊碼的無符號十六進製表示組成。換句話說,該方法返回一個字元串,它的值等於:

getClass().getName() + '@' + Integer.toHexString(hashCode())
 

覆寫:
類別 Object 中的 toString
返回:
該物件的字元串表示形式。

hashCode

public int hashCode()
返回此 KerberosTicket 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
KerberosTicket 的 hashCode()
從以下版本開始:
1.6
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object other)
比較給定 Object 與此 KerberosTicket 的相等性。如果給定對象也是 KerberosTicket 並且兩個 KerberosTicket 相等,則返回 true。

覆寫:
類別 Object 中的 equals
參數:
other - 要比較的 Object
返回:
如果指定物件等於此 KerberosTicket,則返回 true;否則返回 false。註:如果其中一個 KerberosTicket 已經銷毀,則返回 false。
從以下版本開始:
1.6
另請參見:
Object.hashCode(), Hashtable

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only