Класс KeyTab
- java.lang.Object
-
- javax.security.auth.kerberos.KeyTab
public final class KeyTab extends Object
Этот класс инкапсулирует файл keytab.
Модуль аутентификации 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. Это разрешение не требуется, когда приложение полагается на механизм Kerberos JGSS по умолчанию для доступа к KeyTab. Однако в этом случае приложению потребуется соответствующее разрешение ServicePermission.
Формат файла keytab описан в http://www.ioplex.com/utilities/keytab.txt.
- С момента:
- 1.7
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | equals(Object other) | Сравнивает указанный объект с этим |
boolean | exists() | Проверяет, существует ли файл keytab. |
static KeyTab | getInstance() | Возвращает экземпляр |
static KeyTab | getInstance(File file) | Возвращает экземпляр |
static KeyTab | getInstance(KerberosPrincipal princ) | Возвращает экземпляр |
static KeyTab | getInstance(KerberosPrincipal princ,
File file) | Возвращает экземпляр |
KerberosKey[] | getKeys(KerberosPrincipal principal) | Возвращает свежие ключи для данного принципала Kerberos. |
KerberosPrincipal | getPrincipal() | Возвращает служебный принципал, к которому привязан этот объект |
static KeyTab | getUnboundInstance() | Возвращает экземпляр |
static KeyTab | getUnboundInstance(File file) | Возвращает экземпляр |
int | hashCode() | Возвращает хеш-код для этого объекта |
boolean | isBound() | Возвращает, привязан ли keytab к принципалу. |
String | toString() | Возвращает информативное текстовое представление этого объекта |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы
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)
Возвращает свежие ключи для данного принципала Kerberos.
Реализация этого метода должна гарантировать, что возвращаемые ключи соответствуют последнему содержанию файла ключевого каталога. Результат — новая копия, которую можно модифицировать вызывающей стороной без изменения объекта ключевого каталога. Вызывающая сторона должна destroy результирующие ключи после их использования.
Обратите внимание, что файл ключевого каталога может быть создан после создания объекта KeyTab и его содержимое может меняться со временем. Поэтому приложение должно вызывать этот метод только при необходимости использования ключей. Любой предыдущий результат предыдущего вызова может быть устаревшим.
Если при чтении файла ключевого каталога возникнет ошибка (например, ошибка ввода-вывода или ошибка формата), должен быть возвращен сохраненный результат. Если сохраненного результата нет (например, это первый вызов этого метода или все предыдущие попытки чтения завершились ошибкой), должен быть возвращен пустой массив. Это гарантирует, что результат не изменится резко во время (вероятно, медленного) обновления файла ключевого каталога.
Любой неподдерживаемый ключ, прочитанный из ключевого каталога, игнорируется и не включается в результат.
Если этот ключевой каталог привязан к определенному принципалу, вызов этого метода для другого принципала вернет пустой массив.
- Параметры:
-
principal- принципал Kerberos, не должен быть null. - Возвращает:
- ключи (никогда не null, могут быть пустыми)
- Исключения:
-
NullPointerException- если аргументprincipalравен null -
SecurityException- если существует менеджер безопасности и разрешение на чтение файла ключевого каталога не предоставлено
exists
public boolean exists()
Проверяет, существует ли файл ключевого каталога. Реализация этого метода должна гарантировать, что результат соответствует последнему статусу файла ключевого каталога.
Вызывающая сторона может использовать результат, чтобы определить, следует ли перейти к другому механизму чтения ключей.
- Возвращает:
- true, если файл ключевого каталога существует; false в противном случае.
- Исключения:
-
SecurityException- если существует менеджер безопасности и разрешение на чтение файла ключевого каталога не предоставлено
toString
public String toString()
Возвращает информативное текстовое представление этого KeyTab.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- информативное текстовое представление этого
KeyTab.
hashCode
public int hashCode()
Возвращает код хэша для этого KeyTab.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- код хэша для этого
KeyTab. - См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
equals
public boolean equals(Object other)
Сравнивает указанный объект с этим KeyTab на равенство. Возвращает true, если заданный объект также является KeyTab и оба экземпляра KeyTab эквивалентны.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- объект для сравнения - Возвращает:
- true, если указанный объект равен этому
KeyTab - См. также:
-
Object.hashCode(),HashMap
getPrincipal
public KerberosPrincipal getPrincipal()
Возвращает сервисный принципал, к которому привязан этот объект KeyTab. Возвращает null, если он не привязан.
Обратите внимание, что устаревшие конструкторы создают объект KeyTab , привязанный к некоторому неизвестному принципалу. В этом случае этот метод также возвращает null. Пользователь может вызвать isBound() для проверки этого случая.
- Возвращает:
- сервисный принципал
- С:
- 1.8
isBound
public boolean isBound()
Возвращает, привязан ли ключевой каталог к принципалу
- Возвращает:
- привязан ли ключевой каталог к принципалу
- С:
- 1.8
© 1993, 2020, 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/11/docs/api/java.security.jgss/javax/security/auth/kerberos/KeyTab.html