Spec-Zone.ru › OpenJDK 24

Класс 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.

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

Примечание об реализации:
Модуль аутентификации JAAS в справочной реализации JDK уничтожает все билеты после выхода.
С:
1.4
См. также:
  • Subject
  • 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, представляющей флаги билета. Если количество элементов в этом массиве меньше количества флагов, используемых протоколом 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, представляющей флаги билета.
Возвращает:
флаги, связанные с этим билетом, или 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
Уничтожает билет и удаляет любые хранящиеся в нём конфиденциальные данные.
Specified by:
destroy in interface Destroyable
Throws:
DestroyFailedException - если операция уничтожения завершилась неудачно.

isDestroyed

public boolean isDestroyed()
Определяет, был ли уничтожен этот билет.
Specified by:
isDestroyed in interface Destroyable
Returns:
true, если этот Object был уничтожен, иначе false.

toString

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

hashCode

public int hashCode()
Возвращает код хэша для этого KerberosTicket.
Overrides:
hashCode in class Object
Returns:
код хэша для этого KerberosTicket
Since:
1.6
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

equals

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

© 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/KerberosTicket.html

Spec-Zone.ru

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