モジュール java.security.jgss

クラス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
    • メソッドの詳細

      • 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の有益なテキスト表現です。
      • 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