モジュール java.security.jgss

クラスKeyTab

java.lang.Object
javax.security.auth.kerberos.KeyTab

public final class KeyTab
extends Object
このクラスは、キータブ・ファイルをカプセル化します。

長期の秘密キーをキータブ・ファイルから取得するKerberos JAASログイン・モジュールでは、このクラスを使用するようにしてください。 ログイン・モジュールは、認証プロセスのコミット・フェーズ中に、このクラスのインスタンスをSubjectの非公開資格セットに格納します。

KeyTabオブジェクトがgetUnboundInstance()またはgetUnboundInstance(java.io.File)から取得されたものである場合、それはバインドされていないため、どのサービス主体からも使用できます。 それ以外の場合、それがgetInstance(KerberosPrincipal)またはgetInstance(KerberosPrincipal, java.io.File)から取得されたものである場合、それは特定のサービス主体にバインドされているため、そのサービス主体からしか使用できません。

コンストラクタgetInstance()getInstance(java.io.File)は、バインドされていないキータブがサポートされていない時点で作成されたものです。 これらのメソッドは今後使用しないでください。 これらのメソッドのいずれかを使用して作成されたオブジェクトは未知の主体にバインドされているとみなされるため、そのisBound()からはtrueが、getPrincipal()からはnullがそれぞれ返されます。

SubjectからKeyTabインスタンスにアクセスする必要がある場合は、アプリケーションにPrivateCredentialPermissionを付与する必要があります。 アプリケーションがKeyTabにアクセスするためのデフォルトのJGSS Kerberosメカニズムに依存する場合、このアクセス権は必要ありません。 ただしその場合、アプリケーションには適切なServicePermissionが必要です。

キー・タブのファイル形式については、http://www.ioplex.com/utilities/keytab.txtを参照してください。

導入されたバージョン:
1.7
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    boolean equals​(Object other)
    指定されたオブジェクトとこのKeyTabが等しいかどうかを比較します。
    boolean exists()
    キータブ・ファイルが存在するかどうかをチェックします。
    static KeyTab getInstance()
    未知のサービス主体にバインドされたデフォルトのKeyTabインスタンスを返します。
    static KeyTab getInstance​(File file)
    未知のサービス主体にバインドされたFileオブジェクトからKeyTabインスタンスを返します。
    static KeyTab getInstance​(KerberosPrincipal princ)
    指定されたサービス主体にバインドされたデフォルトのKeyTabインスタンスを返します。
    static KeyTab getInstance​(KerberosPrincipal princ, File file)
    指定されたサービス主体にバインドされたFileオブジェクトからKeyTabインスタンスを返します。
    KerberosKey[] getKeys​(KerberosPrincipal principal)
    指定したKerberos主体の新しいキーを返します。
    KerberosPrincipal getPrincipal()
    このKeyTabオブジェクトがバインドされているサービス主体を返します。
    static KeyTab getUnboundInstance()
    バインドされていないデフォルトのKeyTabインスタンスを返します。
    static KeyTab getUnboundInstance​(File file)
    Fileオブジェクトから、バインドされていないKeyTabインスタンスを返します。
    int hashCode()
    このKeyTabのハッシュ・コードを返します。
    boolean isBound()
    キータブが主体にバインドされているかどうかを返します
    String toString()
    このKeyTabの有益なテキスト表現を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • メソッドの詳細

    • getInstance

      public static KeyTab getInstance​(File file)
      未知のサービス主体にバインドされたFileオブジェクトからKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをファイルに関連付けるだけで、読込みは行いません。

      開発者は、バインド先のサービス主体がわかっている場合はgetInstance(KerberosPrincipal,File)を呼び出すようにしてください。

      パラメータ:
      file - キー・タブFileオブジェクト(null以外)。
      戻り値:
      キータブ・インスタンス
      例外:
      NullPointerException - file引数がnullの場合
    • getUnboundInstance

      public static KeyTab getUnboundInstance​(File file)
      Fileオブジェクトから、バインドされていないKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをファイルに関連付けるだけで、読込みは行いません。

      パラメータ:
      file - キー・タブFileオブジェクト(null以外)。
      戻り値:
      キータブ・インスタンス
      例外:
      NullPointerException - file引数がnullの場合
      導入されたバージョン:
      1.8
    • getInstance

      public static KeyTab getInstance​(KerberosPrincipal princ, File file)
      指定されたサービス主体にバインドされたFileオブジェクトからKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをファイルに関連付けるだけで、読込みは行いません。

      パラメータ:
      princ - バインド先のサービス主体(nullは不可)
      file - キー・タブFileオブジェクト(null以外)。
      戻り値:
      キータブ・インスタンス
      例外:
      NullPointerException - いずれかの引数がnullの場合
      導入されたバージョン:
      1.8
    • getInstance

      public static KeyTab getInstance()
      未知のサービス主体にバインドされたデフォルトのKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをデフォルトのキータブ・ファイルに関連付けるだけで、読込みは行いません。

      開発者は、バインド先のサービス主体がわかっている場合はgetInstance(KerberosPrincipal)を呼び出すようにしてください。

      戻り値:
      デフォルトのキータブ・インスタンス。
    • getUnboundInstance

      public static KeyTab getUnboundInstance()
      バインドされていないデフォルトのKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをデフォルトのキータブ・ファイルに関連付けるだけで、読込みは行いません。

      戻り値:
      デフォルトのキータブ・インスタンス
      導入されたバージョン:
      1.8
    • getInstance

      public static KeyTab getInstance​(KerberosPrincipal princ)
      指定されたサービス主体にバインドされたデフォルトのKeyTabインスタンスを返します。

      このメソッドの結果はnullにはなりません。 このメソッドは返されたKeyTabオブジェクトをデフォルトのキータブ・ファイルに関連付けるだけで、読込みは行いません。

      パラメータ:
      princ - バインド先のサービス主体(nullは不可)
      戻り値:
      デフォルトのキータブ・インスタンス
      例外:
      NullPointerException - princがnullの場合
      導入されたバージョン:
      1.8
    • getKeys

      public KerberosKey[] getKeys​(KerberosPrincipal principal)
      指定したKerberos主体の新しいキーを返します。

      このメソッドの実装では、戻り値のキーがキータブ・ファイルの最新の内容と一致していることを確認するようにしてください。 新しく作成されたコピーが結果として得られ、これはキータブ・オブジェクトを変更することなく、呼出し側から変更できます。 呼出し側は、結果として得られたキーを使用したあと、それを破棄するべきです。

      キータブ・ファイルは、KeyTabオブジェクトのインスタンス化後に作成可能となり、その内容は時間とともに変わる可能性があります。 したがって、アプリケーションは、キーを使用する必要があるときのみ、このメソッドを呼び出すべきです。 以前の呼出しによる古い結果は期限切れになっている可能性があります。

      keytabファイルの読み取りプロセス中にエラー(たとえば、I/Oエラーまたはフォーマット・エラー)がある場合、保存された結果が返されます。 保存されている結果がない場合は(このメソッドを最初に呼び出した場合や以前の読取りがすべて失敗した場合など)、空の配列を返すようにしてください。 これにより、時間のかかることが多いキータブ・ファイルの更新中に結果が大きく変わることがなくなります。

      このメソッドが呼び出され、例外(入出力エラーやファイル形式エラー)が発生することなくファイルの読込みに成功するたびに、結果がprincipal用に保存されるようにしてください。 場合によっては、同じキータブ・オブジェクト内にキーが格納されているほかの主体用にキーを保存することもできます。

      キー・タブから読み込まれたサポートされていないキーは無視され、結果には含められません。

      このキータブが特定の主体にバインドされている場合、別の主体に対してこのメソッドを呼び出すと、空の配列が返されます。

      パラメータ:
      principal - Kerberos主体(null以外)。
      戻り値:
      キー(空であってもよいが、Nullは不可)
      例外:
      NullPointerException - principal引数がnullの場合
      SecurityException - セキュリティ・マネージャが存在し、キータブ・ファイルへの読込みアクセスが許可されない場合
    • exists

      public boolean exists()
      キータブ・ファイルが存在するかどうかをチェックします。 このメソッドの実装では、結果がキータブ・ファイルの最新の状態と一致していることを確認するようにしてください。
      戻り値:
      キータブ・ファイルが存在する場合はtrue、それ以外の場合はfalse。
      例外:
      SecurityException - セキュリティ・マネージャが存在し、キータブ・ファイルへの読込みアクセスが許可されない場合
    • toString

      public String toString()
      このKeyTabの有益なテキスト表現を返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このKeyTabの有益なテキスト表現です。
    • hashCode

      public int hashCode()
      このKeyTabのハッシュ・コードを返します。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このKeyTabのハッシュ・コード。
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • equals

      public boolean equals​(Object other)
      指定されたオブジェクトとこのKeyTabが等しいかどうかを比較します。 指定されたオブジェクトがKeyTabであり、2つのKeyTabインスタンスが等価である場合、trueを返します。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      other - 比較するオブジェクト
      戻り値:
      指定されたオブジェクトがこのKeyTabと等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • getPrincipal

      public KerberosPrincipal getPrincipal()
      このKeyTabオブジェクトがバインドされているサービス主体を返します。 バインドされていない場合はnullを返します。

      非推奨のコンストラクタは、未知のプリンシパルにバインドされたKeyTabオブジェクトを作成することに注意してください。 この場合もこのメソッドからnullが返されます。 isBound()を呼び出せば、この場合の確認を行えます。

      戻り値:
      サービス主体
      導入されたバージョン:
      1.8
    • isBound

      public boolean isBound()
      キータブが主体にバインドされているかどうかを返します
      戻り値:
      キータブが主体にバインドされているかどうか
      導入されたバージョン:
      1.8