Класс KeyTab
public final class KeyTab extends Object
Модуль входа JAAS Kerberos, получающий долговременные секретные ключи из файла keytab, должен использовать этот класс. На этапе фиксации процесса аутентификации модуль входа сохранит экземпляр этого класса в наборе закрытых учётных данных объекта Subject.
Если объект KeyTab получен с помощью getUnboundInstance() или getUnboundInstance(java.io.File), он не привязан и поэтому может использоваться любым субъектом-службой. В противном случае, если он получен с помощью getInstance(KerberosPrincipal) или getInstance(KerberosPrincipal, java.io.File), он привязан к определённому субъекту-службе и может использоваться только им.
Обратите внимание: конструкторы getInstance() и getInstance(java.io.File) были созданы до появления поддержки непривязанных keytab. Эти методы больше не следует использовать. Объект, созданный любым из этих методов, считается привязанным к неизвестному субъекту, а это значит, что метод isBound() возвращает true, а getPrincipal() — null.
Формат файла keytab описан по адресу http://www.ioplex.com/utilities/keytab.txt.
- Начиная с версии:
- 1.7
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает указанный объект с этим KeyTab на равенство. |
boolean |
exists() |
Проверяет, существует ли файл keytab. |
static KeyTab |
getInstance() |
Возвращает экземпляр KeyTab по умолчанию, привязанный к неизвестному субъекту-службе. |
static KeyTab |
getInstance |
Возвращает экземпляр KeyTab из объекта File, привязанный к неизвестному субъекту-службе. |
static KeyTab |
getInstance |
Возвращает экземпляр KeyTab по умолчанию, привязанный к указанному субъекту-службе. |
static KeyTab |
getInstance |
Возвращает экземпляр KeyTab из объекта File, привязанный к указанному субъекту-службе. |
KerberosKey[] |
getKeys |
Возвращает актуальные ключи для указанного субъекта Kerberos. |
KerberosPrincipal |
getPrincipal() |
Возвращает субъект-службу, к которому привязан этот объект KeyTab. |
static KeyTab |
getUnboundInstance() |
Возвращает экземпляр непривязанного KeyTab по умолчанию. |
static KeyTab |
getUnboundInstance |
Возвращает экземпляр непривязанного KeyTab из объекта File. |
int |
hashCode() |
Возвращает хеш-код этого KeyTab. |
boolean |
isBound() |
Возвращает, привязан ли keytab к субъекту |
String |
toString() |
Возвращает информативное текстовое представление этого KeyTab. |
Подробное описание методов
getInstance
public static KeyTab getInstance(File file)
KeyTab из объекта File, привязанный к неизвестному субъекту-службе. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
Если субъект-служба, к которому выполняется привязка, известен, разработчикам следует вызывать getInstance(KerberosPrincipal,File).
- Параметры:
-
file— объектFilekeytab; не должен быть равен null - Возвращает:
- экземпляр keytab
- Вызывает исключение:
-
NullPointerException— если аргументfileравен null
getUnboundInstance
public static KeyTab getUnboundInstance(File file)
KeyTab из объекта File. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
file— объектFilekeytab; не должен быть равен null - Возвращает:
- экземпляр keytab
- Вызывает исключение:
-
NullPointerException— если аргумент file равен null - Начиная с версии:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ, File file)
KeyTab из объекта File, привязанный к указанному субъекту-службе. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
princ— субъект-служба, к которому выполняется привязка; не должен быть равен null -
file— объектFilekeytab; не должен быть равен null - Возвращает:
- экземпляр keytab
- Вызывает исключение:
-
NullPointerException— если любой из аргументов равен null - Начиная с версии:
- 1.8
getInstance
public static KeyTab getInstance()
KeyTab по умолчанию, привязанный к неизвестному субъекту-службе. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом keytab по умолчанию и не считывает его.
Если субъект-служба, к которому выполняется привязка, известен, разработчикам следует вызывать getInstance(KerberosPrincipal).
- Возвращает:
- экземпляр keytab по умолчанию.
getUnboundInstance
public static KeyTab getUnboundInstance()
KeyTab по умолчанию. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом keytab по умолчанию и не считывает его.
- Возвращает:
- экземпляр keytab по умолчанию
- Начиная с версии:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ)
KeyTab по умолчанию, привязанный к указанному субъекту-службе. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом keytab по умолчанию и не считывает его.
- Параметры:
-
princ— субъект-служба, к которому выполняется привязка; не должен быть равен null - Возвращает:
- экземпляр keytab по умолчанию
- Вызывает исключение:
-
NullPointerException— еслиprincравен null - Начиная с версии:
- 1.8
getKeys
public KerberosKey[] getKeys(KerberosPrincipal principal)
Реализация этого метода должна обеспечивать соответствие возвращаемых ключей последнему содержимому файла keytab. Результатом является новая копия, которую вызывающий код может изменять, не изменяя объект keytab. После использования ключей вызывающему коду следует вызвать для них destroy.
Обратите внимание: файл keytab может быть создан после создания экземпляра объекта KeyTab, а его содержимое может меняться со временем. Поэтому приложению следует вызывать этот метод только тогда, когда ключи необходимы. Результат любого предыдущего вызова потенциально может быть просрочен.
Если при чтении файла keytab возникает ошибка (например, ошибка ввода-вывода или ошибка формата), следует вернуть сохранённый результат. Если сохранённого результата нет (например, метод вызывается впервые или все предыдущие попытки чтения завершились неудачей), следует вернуть пустой массив. Это позволяет избежать резкого изменения результата во время обновления файла keytab, которое может занять продолжительное время.
Каждый раз, когда этот метод вызывается и чтение файла завершается успешно, без исключений (например, ошибки ввода-вывода или ошибки формата файла), результат следует сохранить для principal. При необходимости реализация также может сохранить ключи других субъектов, для которых имеются ключи в том же объекте keytab.
Любые неподдерживаемые ключи, считанные из keytab, игнорируются и не включаются в результат.
Если этот keytab привязан к определённому субъекту, вызов этого метода для другого субъекта вернёт пустой массив.
- Параметры:
-
principal— субъект Kerberos; не должен быть равен null. - Возвращает:
- ключи (никогда не равны null, могут быть пустыми)
- Вызывает исключение:
-
NullPointerException— если аргументprincipalравен null
exists
public boolean exists()
- Возвращает:
- true, если файл keytab существует; в противном случае false.
toString
hashCode
equals
public boolean equals(Object other)
KeyTab на равенство. Возвращает true, если заданный объект также является KeyTab и два экземпляра KeyTab эквивалентны.getPrincipal
public KerberosPrincipal getPrincipal()
KeyTab. Если привязки нет, возвращает null. Обратите внимание: устаревшие конструкторы создают объект KeyTab, привязанный к некоторому неизвестному субъекту. В этом случае данный метод также возвращает null. Пользователь может вызвать isBound(), чтобы проверить это.
- Возвращает:
- субъект-службу
- Начиная с версии:
- 1.8
isBound
public boolean isBound()
- Возвращает:
- признак того, привязан ли keytab к субъекту
- Начиная с версии:
- 1.8
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.security.jgss/javax/security/auth/kerberos/KeyTab.html