Класс KeyTab
- java.lang.Object
-
- javax.security.auth.kerberos.KeyTab
public final class KeyTab extends Object
Этот класс инкапсулирует файл keytab.
Модуль аутентификации 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.
Возможно, приложению потребуется разрешение PrivateCredentialPermission, если ему необходимо получить доступ к экземпляру KeyTab из объекта Subject. Это разрешение не требуется, когда приложение полагается на стандартный механизм JGSS Kerberos для доступа к KeyTab. Однако в этом случае приложению потребуется соответствующее разрешение ServicePermission.
Формат файла keytab описан по адресу http://www.ioplex.com/utilities/keytab.txt.
- Since:
- 1.7
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
equals(Object other) Сравнивает указанный объект с этим KeyTab на равенство. |
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() Возвращает хешкод для данного KeyTab. |
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- объект keytabFile, не должен быть null - Возвращает:
- экземпляр keytab
- Исключения:
-
NullPointerException- если аргументfileравен null
getUnboundInstance
public static KeyTab getUnboundInstance(File file)
Возвращает экземпляр KeyTab без привязки из объекта File.
Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
file- объект keytabFile, не должен быть null - Возвращает:
- экземпляр keytab
- Исключения:
-
NullPointerException- если аргумент файла равен null - C момента:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ,
File file) Возвращает экземпляр KeyTab из объекта File, привязанного к указанному сервисному принципалу.
Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом и не считывает его.
- Параметры:
-
princ- привязанный сервисный принципал, не должен быть null -
file- объект keytabFile, не должен быть null - Возвращает:
- экземпляр keytab
- Исключения:
-
NullPointerException- если любой из аргументов равен null - C момента:
- 1.8
getInstance
public static KeyTab getInstance()
Возвращает стандартный экземпляр KeyTab, привязанный к неизвестному сервисному принципалу.
Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом стандартного keytab и не считывает его.
Разработчики должны вызвать getInstance(KerberosPrincipal), когда известен привязанный сервисный принципал.
- Возвращает:
- стандартный экземпляр keytab.
getUnboundInstance
public static KeyTab getUnboundInstance()
Возвращает стандартный экземпляр KeyTab без привязки.
Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом стандартного keytab и не считывает его.
- Возвращает:
- стандартный экземпляр keytab
- C момента:
- 1.8
getInstance
public static KeyTab getInstance(KerberosPrincipal princ)
Возвращает стандартный экземпляр KeyTab, привязанный к указанному сервисному принципалу.
Результат этого метода никогда не равен null. Этот метод только связывает возвращаемый объект KeyTab с файлом стандартного keytab и не считывает его.
- Параметры:
-
princ- привязанный сервисный принципал, не должен быть null - Возвращает:
- стандартный экземпляр keytab
- Исключения:
-
NullPointerException- еслиprincравен null - C момента:
- 1.8
getKeys
public KerberosKey[] getKeys(KerberosPrincipal principal)
Возвращает свежие ключи для данного принципала Kerberos.
Реализация этого метода должна убедиться, что возвращаемые ключи соответствуют последнему содержимому файла keytab. Результатом является новая копия, которую можно изменить вызывающему без изменения объекта keytab. Вызывающий должен destroy ключи после использования.
Обратите внимание, что файл keytab может быть создан после создания объекта KeyTab и его содержимое может изменяться со временем. Поэтому приложение должно вызывать этот метод только при необходимости использования ключей. Любой предыдущий результат предыдущего вызова потенциально может быть просрочен.
Если при чтении файла KeyTab возникает ошибка (например, ошибка ввода-вывода или ошибка формата), возвращается сохраненный результат. Если сохраненного результата нет (например, это первый вызов этого метода или все предыдущие попытки чтения завершились ошибкой), возвращается пустой массив. Это гарантирует, что результат не изменится значительно во время (вероятно, медленной) обновления файла keytab.
Любой неподдерживаемый ключ, прочитанный из keytab, игнорируется и не включается в результат.
Если этот keytab привязан к определенному принципалу, вызов этого метода для другого принципала вернет пустой массив.
- Параметры:
-
principal- принципал Kerberos, не должен быть null. - Возвращает:
- ключи (никогда не null, могут быть пустыми)
- Исключения:
-
NullPointerException- если аргументprincipalравен null -
SecurityException- если существует менеджер безопасности и разрешение на чтение файла keytab отсутствует
exists
public boolean exists()
Проверяет, существует ли файл keytab. Реализация этого метода должна убедиться, что результат соответствует последнему состоянию файла keytab.
Вызывающий может использовать результат, чтобы определить, должен ли он перейти к другому механизму чтения ключей.
- Возвращает:
- true, если файл keytab существует; false в противном случае.
- Исключения:
-
SecurityException- если существует менеджер безопасности и разрешение на чтение файла keytab отсутствует
toString
public String toString()
Описание скопировано из класса: Object
Возвращает строковое представление объекта. В общем, метод toString возвращает строку, которая "текстуально представляет" этот объект. Результат должен быть кратким, но информативным представлением, удобным для чтения человеком. Рекомендуется всем подклассам переопределить этот метод.
Метод toString для класса Object возвращает строку, состоящую из имени класса, экземпляром которого является объект, знака `@` и неопределенного шестнадцатеричного представления хэш-кода объекта. Другими словами, этот метод возвращает строку, равную значению:
getClass().getName() + '@' + Integer.toHexString(hashCode())
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(), чтобы проверить этот случай.
- Возвращает:
- сервисный принципал
- C момента:
- 1.8
isBound
public boolean isBound()
Возвращает, привязан ли keytab к принципалу
- Возвращает:
- привязан ли keytab к принципалу
- C момента:
- 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.