Класс 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.
Возможно, приложению потребуется разрешение PrivateCredentialPermission, если ему необходимо получить доступ к экземпляру KeyTab из Subject. Это разрешение не требуется, когда приложение полагается на стандартный механизм JGSS Kerberos для доступа к KeyTab. Однако в этом случае приложению потребуется соответствующее разрешение ServicePermission.
Формат файла 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- объектFilekeytab, не должен быть null - Возвращает:
- экземпляр keytab
- Исключения:
-
NullPointerException- если аргументfileравен null
getUnboundInstance
public static KeyTab getUnboundInstance(File file)
KeyTab из объекта File . Результат этого метода никогда не равен null. Этот метод только ассоциирует возвращаемый объект KeyTab с файлом и не читает его.
- Параметры:
-
file- объект keytabFile, не должен быть null - Возвращает:
- экземпляр keytab
- Исключения:
-
NullPointerException- если аргумент файла равен null - С момента:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ, File file)
KeyTab из объекта File, привязанный к указанному сервисному принципалу. Результат этого метода никогда не равен null. Этот метод только ассоциирует возвращаемый объект KeyTab с файлом и не читает его.
- Параметры:
-
princ- связанный сервисный принципал, не должен быть null -
file- объект keytabFile, не должен быть 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.
Любой неподдерживаемый ключ, прочитанный из keytab, игнорируется и не включается в результат.
Если этот keytab привязан к определенному принципалу, вызов этого метода для другого принципала вернет пустой массив.
- Параметры:
-
principal- принципал Kerberos, не должен быть null. - Возвращает:
- ключи (никогда не null, могут быть пустыми)
- Исключения:
-
NullPointerException- если аргументprincipalравен null -
SecurityException- если существует менеджер безопасности и доступ к чтению файла keytab запрещён
exists
public boolean exists()
- Возвращает:
- true, если файл keytab существует; false в противном случае.
- Исключения:
-
SecurityException- если существует менеджер безопасности и доступ к чтению файла keytab запрещён
toString
public String toString()
KeyTab. - Переопределяет:
-
toStringв классеObject - Возвращает:
- информативное текстовое представление этого
KeyTab.
hashCode
public int hashCode()
KeyTab. - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- хэш-код для этого
KeyTab. - См. также:
equals
public boolean equals(Object other)
KeyTab на равенство. Возвращает true, если заданный объект также является KeyTab и два экземпляра KeyTab эквивалентны.- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- объект для сравнения - Возвращает:
- true, если указанный объект равен этому
KeyTab - См. также:
getPrincipal
public KerberosPrincipal getPrincipal()
KeyTab. Возвращает null, если он не привязан. Обратите внимание, что устаревшие конструкторы создают объект KeyTab , привязанный к некоторому неизвестному принципалу. В этом случае этот метод также возвращает null. Пользователь может вызвать isBound(), чтобы проверить этот случай.
- Возвращает:
- сервисный принципал
- С момента:
- 1.8
isBound
public boolean isBound()
- Возвращает:
- привязан ли keytab к принципалу
- С момента:
- 1.8
© 1993, 2023, 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/21/docs/api/java.security.jgss/javax/security/auth/kerberos/KeyTab.html