Spec-Zone.ru › OpenJDK 17

Класс KerberosTicket

java.lang.Object
javax.security.auth.kerberos.KerberosTicket
Все реализуемые интерфейсы:
Serializable, Destroyable, Refreshable
public class KerberosTicket extends Object implements Destroyable, Refreshable, Serializable
Этот класс инкапсулирует билет Kerberos и связанную информацию с точки зрения клиента. Он захватывает всю информацию, которую Центр распределения ключей (KDC) отправляет клиенту в ответном сообщении KDC-REP, определённом в Спецификации протокола Kerberos (RFC 4120).

Все модули входа JAAS Kerberos, которые аутентифицируют пользователя в KDC, должны использовать этот класс. В случае возможности модуль входа может даже читать эту информацию из кэша билетов в операционной системе вместо прямого взаимодействия с KDC. На стадии подтверждения процесса аутентификации JAAS, модуль входа JAAS должен создать экземпляр этого класса и сохранить экземпляр в частном наборе данных Subject.

Приложение может потребовать PrivateCredentialPermission для доступа к экземпляру KerberosTicket из Subject. Это разрешение не требуется, когда приложение полагается на стандартный механизм JGSS Kerberos для доступа к KerberosTicket. В этом случае, однако, приложение потребует соответствующее ServicePermission.

Обратите внимание, что этот класс применим как к билетам предоставления билетов, так и к другим обычным билетам на услуги. Бит предоставления билета - это просто частный случай более обобщённого билета на услугу.

Примечание по реализации:
Модуль входа JAAS в справочной реализации JDK уничтожает все билеты после выхода.
С:
1.4
См. также:
  • Subject
  • PrivateCredentialPermission
  • LoginContext
  • GSSCredential
  • GSSManager
  • Формат сериализации

Краткое описание конструкторов

Конструктор Описание
KerberosTicket(byte[] asn1Encoding, KerberosPrincipal client, KerberosPrincipal server, byte[] sessionKey, int keyType, boolean[] flags, Date authTime, Date startTime, Date endTime, Date renewTill, InetAddress[] clientAddresses)
Создаёт KerberosTicket, используя информацию о данных, полученную клиентом от KDC или прочитанную из кэша.

Краткое описание методов

Модификатор и тип Метод Описание
void destroy()
Уничтожает билет и любые чувствительные данные, хранящиеся в нём.
boolean equals(Object other)
Сравнивает указанный объект с этим KerberosTicket на равенство.
final Date getAuthTime()
Возвращает время аутентификации клиента.
final KerberosPrincipal getClient()
Возвращает основного принципала клиента, связанного с этим билетом.
final InetAddress[] getClientAddresses()
Возвращает список адресов, с которых билет может быть использован.
final byte[] getEncoded()
Возвращает ASN.1 кодирование всего билета.
final Date getEndTime()
Возвращает время истечения срока действия данного билета.
final boolean[] getFlags()
Возвращает флаги, связанные с этим билетом.
final Date getRenewTill()
Возвращает последнее время истечения срока действия билета, включая все продления.
final KerberosPrincipal getServer()
Возвращает принципала сервиса, связанного с этим билетом.
final SecretKey getSessionKey()
Возвращает сессионный ключ, связанный с этим билетом.
final int getSessionKeyType()
Возвращает тип ключа сессионного ключа, связанного с этим билетом, как определено в Спецификации протокола Kerberos.
final Date getStartTime()
Возвращает время начала периода действия данного билета.
int hashCode()
Возвращает хеш-код для данного KerberosTicket.
boolean isCurrent()
Определяет, является ли данный билет текущим.
boolean isDestroyed()
Определяет, был ли данный билет уничтожен.
final boolean isForwardable()
Определяет, может ли данный билет быть перенаправлен.
final boolean isForwarded()
Определяет, был ли данный билет перенаправлен или выдан на основе аутентификации с использованием перенаправленного билета предоставления билета.
final boolean isInitial()
Определяет, был ли данный билет выдан с использованием протокола Kerberos AS-Exchange, а не на основе билета предоставления билета.
final boolean isPostdated()
Определяет, является ли данный билет с датой в будущем.
final boolean isProxiable()
Определяет, может ли данный билет быть проксированным.
final boolean isProxy()
Определяет, является ли данный билет билетом проксирования.
final boolean isRenewable()
Определяет, может ли данный билет быть продлён.
void refresh()
Продлевает период действия этого билета.
String toString()
Возвращает информативное текстовое представление данного KerberosTicket.

Методы, унаследованные от класса java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

KerberosTicket

public KerberosTicket(byte[] asn1Encoding, KerberosPrincipal client, KerberosPrincipal server, byte[] sessionKey, int keyType, boolean[] flags, Date authTime, Date startTime, Date endTime, Date renewTill, InetAddress[] clientAddresses)
Создаёт объект KerberosTicket используя информацию о правах доступа, которую клиент получает от KDC или считывает из кэша.
Параметры:
asn1Encoding - кодировка билета в формате ASN.1, как определено в спецификации протокола Kerberos.
client - клиент, владеющий этим билетом на услугу.
server - услуга, для которой предназначен этот билет.
sessionKey - сырые байты для сессионного ключа, который должен использоваться для шифрования аутентификатора, который будет отправлен серверу.
keyType - тип ключа сессии, как определено в спецификации протокола Kerberos.
flags - флаги билета. Каждый элемент в этом массиве указывает значение соответствующего бита в ASN.1 BitString, представляющем флаги билета. Если число элементов в этом массиве меньше числа флагов, используемых протоколом Kerberos, то недостающие флаги будут заполнены значением false.
authTime - время первоначальной аутентификации клиента.
startTime - время, после которого билет будет действителен. Может быть null, в этом случае значение authTime рассматривается как startTime.
endTime - время, после которого билет будет недействителен.
renewTill - абсолютное время истечения срока действия билета, включая все возможные продления. Может быть null для билетов, которые не могут быть продлены.
clientAddresses - адреса, с которых клиент может использовать билет. Может быть null, когда билет может использоваться с любого адреса.

Подробное описание методов

getClient

public final KerberosPrincipal getClient()
Возвращает принципал клиента, связанный с этим билетом.
Возвращает:
принципал клиента, или null если он уничтожен.

getServer

public final KerberosPrincipal getServer()
Возвращает принципал службы, связанный с этим билетом.
Возвращает:
принципал службы, или null если он уничтожен.

getSessionKey

public final SecretKey getSessionKey()
Возвращает сессионный ключ, связанный с этим билетом. Возвращаемое значение всегда является объектом EncryptionKey.
Возвращает:
сессионный ключ.
Исключения:
IllegalStateException - если этот билет уничтожен

getSessionKeyType

public final int getSessionKeyType()
Возвращает тип ключа сессии, связанный с этим билетом, как определено в спецификации протокола Kerberos.
Возвращает:
тип ключа сессии, связанный с этим билетом.
Исключения:
IllegalStateException - если этот билет уничтожен
См. также:
  • getSessionKey()

isForwardable

public final boolean isForwardable()
Определяет, может ли этот билет быть переадресован.
Возвращает:
true, если этот билет может быть переадресован, или false, если не может быть переадресован или уничтожен.

isForwarded

public final boolean isForwarded()
Определяет, был ли этот билет переадресован или выдан на основе аутентификации, включающей переадресованный билет-сертификат.
Возвращает:
true, если этот билет был переадресован или выдан на основе аутентификации, включающей переадресованный билет-сертификат, или false в противном случае или если он уничтожен.

isProxiable

public final boolean isProxiable()
Определяет, может ли этот билет быть проксирован.
Возвращает:
true, если этот билет может быть проксирован, или false, если не может быть проксирован или уничтожен.

isProxy

public final boolean isProxy()
Определяет, является ли этот билет прокси-билетом.
Возвращает:
true, если этот билет является прокси-билетом, или false, если он не является прокси-билетом или уничтожен.

isPostdated

public final boolean isPostdated()
Определяет, является ли этот билет с опережающей датой.
Возвращает:
true, если этот билет с опережающей датой, или false, если он не с опережающей датой или уничтожен.

isRenewable

public final boolean isRenewable()
Определяет, может ли быть продлён срок действия этого билета. Если да, то можно вызвать метод refresh, при условии, что период действия продления ещё не истек.
Возвращает:
true, если этот билет может быть продлён, или false, если он не может быть продлён или уничтожен.

isInitial

public final boolean isInitial()
Определяет, выдан ли этот билет с использованием протокола Kerberos AS-Exchange, а не на основе билета-сертификата.
Возвращает:
true, если этот билет выдан с использованием протокола Kerberos AS-Exchange, или false, если он не выдан таким образом или уничтожен.

getFlags

public final boolean[] getFlags()
Возвращает флаги, связанные с этим билетом. Каждый элемент возвращаемого массива указывает значение соответствующего бита в ASN.1 BitString, представляющего флаги билета.
Возвращает:
флаги, связанные с этим билетом, или null если он уничтожен.

getAuthTime

public final Date getAuthTime()
Возвращает время аутентификации клиента.
Возвращает:
время аутентификации клиента или null если поле не установлено или этот билет уничтожен.

getStartTime

public final Date getStartTime()
Возвращает время начала срока действия этого билета.
Возвращает:
время начала срока действия этого билета или null если поле не установлено или этот билет уничтожен.

getEndTime

public final Date getEndTime()
Возвращает время истечения срока действия этого билета.
Возвращает:
время истечения срока действия этого билета или null если он уничтожен.

getRenewTill

public final Date getRenewTill()
Возвращает последнее время истечения срока действия этого билета, включая все продления. Для не-продлеваемых билетов возвращает null.
Возвращает:
последнее время истечения срока действия этого билета, или null если он уничтожен.

getClientAddresses

public final InetAddress[] getClientAddresses()
Возвращает список адресов, с которых билет может быть использован.
Возвращает:
список адресов или null если поле не было предоставлено или этот билет уничтожен.

getEncoded

public final byte[] getEncoded()
Возвращает ASN.1 кодировку всего билета.
Возвращает:
ASN.1 кодировку всего билета. Каждый раз, когда вызывается этот метод, возвращается новый массив байтов.
Исключения:
IllegalStateException - если этот билет уничтожен

isCurrent

public boolean isCurrent()
Определяет, является ли этот билет актуальным.
Определено в:
isCurrent в интерфейсе Refreshable
Возвращает:
true, если этот билет всё ещё актуален, или false, если он не актуален или уничтожен.

refresh

public void refresh() throws RefreshFailedException
Удлиняет период действия этого билета. Билет будет содержать новый сессионный ключ, если операция обновления успешна. Операция обновления завершится неудачей, если билет не может быть обновлён или срок продления уже прошёл. Любая другая ошибка, возвращаемая KDC, также приведёт к неудаче этого метода. Примечание: Этот метод не синхронизирован с методами доступа к этому объекту. Поэтому вызывающие стороны должны быть осведомлены о нескольких потоках, которые могут получить доступ к этому и попытаться обновить его одновременно.
Определено в:
refresh в интерфейсе Refreshable
Исключения:
IllegalStateException - если этот билет уничтожен
RefreshFailedException - если билет не может быть обновлён, или срок продления уже прошёл, или KDC вернул некоторую ошибку.
См. также:
  • isRenewable()
  • getRenewTill()

destroy

public void destroy() throws DestroyFailedException
Уничтожает билет и уничтожает любую конфиденциальную информацию, хранящуюся в нём.
Определено в:
destroy в интерфейсе Destroyable
Исключения:
DestroyFailedException - если операция уничтожения завершилась неудачей.

isDestroyed

public boolean isDestroyed()
Определяет, был ли этот билет уничтожен.
Определено в:
isDestroyed в интерфейсе Destroyable
Возвращает:
true, если этот Object был уничтожен, false в противном случае.

toString

public String toString()
Возвращает информативное текстовое представление этого KerberosTicket.
Переопределяет:
toString в классе Object
Возвращает:
информативное текстовое представление этого KerberosTicket.

hashCode

public int hashCode()
Возвращает хеш-код для этого KerberosTicket.
Overrides:
hashCode в классе Object
Возвращает:
хеш-код для этого KerberosTicket.
Since:
1.6
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object other)
Сравнивает указанный объект с этим KerberosTicket на равенство. Возвращает true, если данный объект также является KerberosTicket и два экземпляра KerberosTicket эквивалентны. Уничтоженный объект KerberosTicket равен только самому себе.
Overrides:
equals в классе Object
Параметры:
other - объект для сравнения
Возвращает:
true, если указанный объект равен этому KerberosTicket, иначе false.
Since:
1.6
См. также:
  • Object.hashCode()
  • HashMap

© 1993, 2021, 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/17/docs/api/java.security.jgss/javax/security/auth/kerberos/KerberosTicket.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API