クラス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)がクライアントに送信した、返答メッセージKDC-REP内のすべての情報を取り込みます。KDC-REPはKerberosプロトコル仕様(RFC 4120)で定義されています。
KDCに対してユーザーを認証するすべてのKerberos JAASログイン・モジュールで、このクラスを使用する必要があります。 利用可能な場合、ログイン・モジュールは、KDCと直接通信するのではなくオペレーティング・システムのチケット・キャッシュから、この情報を読み取ることもあります。 JAAS認証プロセスのコミット・フェーズ中に、JAASログイン・モジュールがこのクラスをインスタンス化し、インスタンスをSubjectの非公開資格セットに格納するようにしてください。
このクラスは、チケットを付与するチケットと、そのほかの一般サービス・チケットとの両方に適用可能です。 チケットを付与するチケットは、より一般化されたサービス・チケットの特殊な例にすぎません。
- 実装上のノート:
- 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を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明voiddestroy()チケットと、チケットに格納されている重要な情報を破棄します。boolean指定されたオブジェクトをこのKerberosTicketと比較し、等しいかどうかを確認します。final Dateクライアントが認証された時間を返します。final KerberosPrincipalこのチケットに関連付けられたクライアント主体を返します。final InetAddress[]このチケットを使用可能なアドレスのリストを返します。final byte[]チケット全体のASN.1エンコーディングを返します。final Dateこのチケットの有効期間の期限切れ時間を返します。final boolean[]getFlags()このチケットに関連付けられたフラグを返します。final Dateすべての更新を含む、このチケットの最新の有効期限を返します。final KerberosPrincipalこのチケットに関連付けられたサービス主体を返します。final SecretKeyこのチケットに関連付けられたセッション・キーを返します。final intKerberosプロトコル仕様で定義された、このチケットに関連付けられたセッション・キーのキー・タイプを返します。final Dateこのチケットの有効期間の開始時間を返します。inthashCode()このKerberosTicketのハッシュ・コードを返します。booleanこのチケットが最新のままであるかどうかを判定します。booleanこのチケットが破棄されたかどうかを判定します。final booleanこのチケットが転送可能であるかどうかを判定します。final booleanこのチケットが転送されてきたか、認証によって発行されたかどうかを判定します(転送されてきたチケット認可チケットを含む)。final booleanこのチケットがKerberos AS-Exchangeプロトコルを使用して発行されていて、チケット認可チケットを元に発行されていないかどうかを判定します。final booleanこのチケットが事後の日付であるかどうかを判定します。final booleanこのチケットがプロキシ可能であるかどうかを判定します。final booleanisProxy()このチケットがプロキシ・チケットであるかどうかを判定します。final booleanこのチケットが更新可能であるかどうかを判定します。voidrefresh()このチケットの有効期間を延長します。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
-
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
-
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
-
hashCode
-
equals
public boolean equals(Object other) 指定されたオブジェクトをこのKerberosTicketと比較し、等しいかどうかを確認します。 指定されたオブジェクトがKerberosTicketであり、2つのKerberosTicketインスタンスが等価である場合、trueを返します。 破棄されたKerberosTicketオブジェクトは、それ自体と等しいだけです。
-