Класс KeyTab
public final class KeyTab extends Object
Модуль аутентификации Kerberos JAAS, получающий долговременные секретные ключи из файла 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.
- Since:
- 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- объект ключевой таблицыFile, не должен быть null - Возвращает:
- экземпляр ключевой таблицы
- Исключение:
-
NullPointerException- если аргументfileравен null
getUnboundInstance
public static KeyTab getUnboundInstance(File file)
KeyTab из объекта File. Результат этого метода никогда не равен null. Данный метод только ассоциирует возвращаемый объект KeyTab с файлом и не читает его.
- Параметры:
-
file- объект ключевой таблицыFile, не должен быть null - Возвращает:
- экземпляр ключевой таблицы
- Исключение:
-
NullPointerException- если аргумент файла равен null - См. также:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ, File file)
KeyTab из объекта File, связанный с указанным принципалом службы. Результат этого метода никогда не равен 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)
Реализация данного метода должна гарантировать, что возвращаемые ключи соответствуют последнему содержимому файла ключевой таблицы. Результат - новая копия, которую можно изменять вызывающей стороне без изменения объекта ключевой таблицы. Вызывающая сторона должна destroy возвращаемые ключи после их использования.
Обратите внимание, что файл ключевой таблицы может быть создан после того, как объект KeyTab был создан, и его содержимое может изменяться со временем. Поэтому приложение должно вызывать этот метод только тогда, когда ему нужны ключи. Любой предыдущий результат от более раннего вызова может быть устаревшим.
Если при чтении файла ключевой таблицы произошла ошибка (например, ошибка ввода-вывода или ошибка формата), должен быть возвращен сохраненный результат. Если сохраненного результата нет (например, это первый вызов этого метода или все предыдущие попытки чтения завершились неудачно), должен быть возвращен пустой массив. Это гарантирует, что результат не изменится существенно во время (возможно, медленной) обновления файла ключевой таблицы.
Каждый раз, когда этот метод вызывается, и чтение файла завершается успешно без исключений (например, ошибка ввода-вывода или ошибка формата файла), результат должен быть сохранен для principal. Реализация также может сохранять ключи для других принципалов, имеющих ключи в том же объекте ключевой таблицы, если это удобно.
Любой неподдерживаемый ключ, прочитанный из ключевой таблицы, игнорируется и не включается в результат.
Если эта ключевая таблица связана с определенным принципалом, вызов этого метода для другого принципала вернет пустой массив.
- Параметры:
-
principal- принципал Kerberos, не должен быть null. - Возвращает:
- ключа (никогда не null, может быть пустым)
- Исключение:
-
NullPointerException- если аргументprincipalравен null
exists
public boolean exists()
- Возвращает:
- true, если файл ключевой таблицы существует; 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()
- Возвращает:
- связан ли объект ключевой таблицы с принципалом
- См. также:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.security.jgss/javax/security/auth/kerberos/KeyTab.html