Класс 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. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело и подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного времени. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно посредством уведомления или прерывания, либо до истечения определенного времени. |
Подробное описание методов
getInstance
public static KeyTab getInstance(File file)
KeyTab из объекта File, привязанный к неизвестному принципалу службы. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
Если принципал привязанной службы известен, разработчикам следует вызывать getInstance(KerberosPrincipal,File).
- Параметры:
-
file— объектFileфайла keytab; не должен быть null - Возвращает:
- экземпляр keytab
- Вызывает исключение:
-
NullPointerException— если аргументfileравен null
getUnboundInstance
public static KeyTab getUnboundInstance(File file)
KeyTab, не привязанный к принципалу, из объекта File. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
file— объектFileфайла keytab; не должен быть null - Возвращает:
- экземпляр keytab
- Вызывает исключение:
-
NullPointerException— если аргумент file равен null - Начиная с версии:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ, File file)
KeyTab из объекта File, привязанный к указанному принципалу службы. Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
princ— привязанный принципал службы; не должен быть null -
file— объектFileфайла keytab; не должен быть 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.