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)がクライアントに送信した、返答メッセージKDC-REP内のすべての情報を取り込みます。KDC-REPはKerberosプロトコル仕様(RFC 4120)で定義されています。
KDCに対してユーザーを認証するすべてのKerberos JAASログイン・モジュールで、このクラスを使用する必要があります。 利用可能な場合、ログイン・モジュールは、KDCと直接通信するのではなくオペレーティング・システムのチケット・キャッシュから、この情報を読み取ることもあります。 JAAS認証プロセスのコミット・フェーズ中に、JAASログイン・モジュールがこのクラスをインスタンス化し、インスタンスをSubject
の非公開資格セットに格納するようにしてください。
Subject
からKerberosTicket
インスタンスにアクセスする必要がある場合は、アプリケーションにPrivateCredentialPermission
が付与されている必要があります。 アプリケーションがKerberosTicket
にアクセスするためのデフォルトのJGSS Kerberosメカニズムに依存する場合、このアクセス権は必要ありません。 ただしその場合、アプリケーションには適切なServicePermission
が必要です。
このクラスは、チケットを付与するチケットと、そのほかの一般サービス・チケットとの両方に適用可能です。 チケットを付与するチケットは、より一般化されたサービス・チケットの特殊な例にすぎません。
- 実装上のノート:
- JDKリファレンス実装のJAASログイン・モジュールは、ログアウト後にすべてのチケットを破棄します。
- 導入されたバージョン:
- 1.4
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明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
指定されたオブジェクトとこのKerberosTicket
が等しいかどうかを比較します。final Date
クライアントが認証された時間を返します。final KerberosPrincipal
このチケットに関連付けられたクライアント主体を返します。final InetAddress[]
このチケットを使用可能なアドレスのリストを返します。final byte[]
チケット全体のASN.1エンコーディングを返します。final Date
このチケットの有効期間の期限切れ時間を返します。final boolean[]
getFlags()
このチケットに関連付けられたフラグを返します。final Date
すべての更新を含む、このチケットの最新の有効期限を返します。final KerberosPrincipal
このチケットに関連付けられたサービス主体を返します。final SecretKey
このチケットに関連付けられたセッション・キーを返します。final int
Kerberosプロトコル仕様で定義された、このチケットに関連付けられたセッション・キーのキー・タイプを返します。final Date
このチケットの有効期間の開始時間を返します。int
hashCode()
このKerberosTicket
のハッシュ・コードを返します。boolean
このチケットが最新のままであるかどうかを判定します。boolean
このチケットが破棄されたかどうかを判定します。final boolean
このチケットが転送可能であるかどうかを判定します。final boolean
このチケットが転送されてきたか、認証によって発行されたかどうかを判定します(転送されてきたチケット認可チケットを含む)。final boolean
このチケットがKerberos AS-Exchangeプロトコルを使用して発行されていて、チケット認可チケットを元に発行されていないかどうかを判定します。final boolean
このチケットが事後の日付であるかどうかを判定します。final boolean
このチケットがプロキシ可能であるかどうかを判定します。final boolean
isProxy()
このチケットがプロキシ・チケットであるかどうかを判定します。final boolean
このチケットが更新可能であるかどうかを判定します。void
refresh()
このチケットの有効期間を延長します。toString()
このKerberosTicket
の有益なテキスト表現を返します。
-
コンストラクタの詳細
-
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
- サーバーに送信されるオーセンティケータを暗号化するために使用する必要があるセッション・キーのrawバイトkeyType
- Kerberosプロトコル仕様で定義された、セッション・キーのキー・タイプ。flags
- チケット・フラグ。 この配列の各要素は、チケット・フラグを表すASN.1 BitStringの対応するビットの値を示す。 この配列の要素数がKerberosプロトコルで使用されるフラグの数よりも少ない場合、足りないフラグはfalseになる。authTime
- クライアントを初期認証した時間startTime
- チケットが有効になる時間。 authTimeの値がstartTimeとして扱われる場合は、nullも可。endTime
- チケットが無効になる時間renewTill
- 可能なすべての更新を含めた、チケットの絶対有効期限。 更新不可能なチケットでは、このフィールドはnullも可。clientAddresses
- クライアントがチケットを使用できるアドレス。 チケットを任意のアドレスで使用できるとき、このフィールドはnullになる。
-
-
メソッドの詳細
-
getClient
public final KerberosPrincipal getClient()このチケットに関連付けられたクライアント主体を返します。- 戻り値:
- クライアント・プリンシパル、または破棄された場合は
null
。
-
getServer
public final KerberosPrincipal getServer()このチケットに関連付けられたサービス主体を返します。- 戻り値:
- サービス・プリンシパル、または破棄された場合は
null
。
-
getSessionKey
public final SecretKey getSessionKey()このチケットに関連付けられたセッション・キーを返します。 戻り値は常にEncryptionKey
オブジェクトです。- 戻り値:
- セッション・キー。
- 例外:
IllegalStateException
- このチケットが破棄された場合
-
getSessionKeyType
public final int getSessionKeyType()Kerberosプロトコル仕様で定義された、このチケットに関連付けられたセッション・キーのキー・タイプを返します。- 戻り値:
- このチケットに関連付けられたセッション・キーのキー・タイプ。
- 例外:
IllegalStateException
- このチケットが破棄された場合- 関連項目:
-
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の対応するビットの値を示します。- 戻り値:
- このチケットに関連付けられたフラグ、または破棄された場合は
null
。
-
getAuthTime
public final Date getAuthTime()クライアントが認証された時間を返します。- 戻り値:
- クライアントが認証された時間、またはフィールドが設定されていないか、このチケットが破棄された場合は
null
。
-
getStartTime
public final Date getStartTime()このチケットの有効期間の開始時間を返します。- 戻り値:
- フィールドが設定されていないか、このチケットが破棄されている場合は、このチケット有効期間の開始時間または
null
。
-
getEndTime
public final Date getEndTime()このチケットの有効期間の期限切れ時間を返します。- 戻り値:
- このチケット有効期間の有効期限、または破棄された場合は
null
。
-
getRenewTill
public final Date getRenewTill()すべての更新を含む、このチケットの最新の有効期限を返します。 更新不可能なチケットではnull値が返されます。- 戻り値:
- このチケットの最新の有効期限、または破棄された場合は
null
。
-
getClientAddresses
public final InetAddress[] getClientAddresses()このチケットを使用可能なアドレスのリストを返します。- 戻り値:
- このフィールドが提供されなかった場合、またはこのチケットが破棄された場合は、
null
を返します。
-
getEncoded
public final byte[] getEncoded()チケット全体のASN.1エンコーディングを返します。- 戻り値:
- チケット全体のASN.1エンコーディング。 このメソッドが呼び出されるたびに、新しいバイト配列が返されます。
- 例外:
IllegalStateException
- このチケットが破棄された場合
-
isCurrent
public boolean isCurrent()このチケットが最新のままであるかどうかを判定します。- 定義:
isCurrent
、インタフェースRefreshable
- 戻り値:
- このチケットがまだ最新の場合はtrue、最新でない場合はfalse、または破棄されます。
-
refresh
public void refresh() throws RefreshFailedExceptionこのチケットの有効期間を延長します。 更新処理に成功すると、チケットに新しいセッション・キーが追加されます。 チケットが更新可能ではない場合や、最後の更新可能な時間が過ぎている場合は、更新処理に失敗します。 KDCからエラーが返された場合も、このメソッドは失敗します。 ノート: このメソッドは、このオブジェクトのアクセサ・メソッドと同期されません。 したがって、呼出し側は、このオブジェクトにアクセスし、更新を試みるスレッドが同時に複数存在する可能性がある点に注意する必要があります。- 定義:
refresh
、インタフェースRefreshable
- 例外:
IllegalStateException
- このチケットが破棄された場合RefreshFailedException
- チケットが更新可能ではない場合、最後の更新可能な時間が過ぎている場合、またはKDCがエラーを返す場合。- 関連項目:
-
destroy
public void destroy() throws DestroyFailedExceptionチケットと、チケットに格納されている重要な情報を破棄します。- 定義:
destroy
、インタフェースDestroyable
- 例外:
DestroyFailedException
- 破棄処理が失敗した場合。
-
isDestroyed
public boolean isDestroyed()このチケットが破棄されたかどうかを判定します。- 定義:
isDestroyed
、インタフェースDestroyable
- 戻り値:
- この
Object
が破棄された場合はtrue、そうでない場合はfalse。
-
toString
public String toString()このKerberosTicket
の有益なテキスト表現を返します。 -
hashCode
public int hashCode()このKerberosTicket
のハッシュ・コードを返します。 -
equals
public boolean equals(Object other) 指定されたオブジェクトとこのKerberosTicket
が等しいかどうかを比較します。 指定されたオブジェクトがKerberosTicket
であり、2つのKerberosTicket
インスタンスが等価である場合、trueを返します。 破壊されたKerberosTicket
オブジェクトは、それ自体と同じです。
-