Класс KerberosTicket

Все реализованные интерфейсы:
Serializable, Destroyable, Refreshable
public class KerberosTicket
extends Object
implements Destroyable, Refreshable, Serializable

Этот класс инкапсулирует билет Kerberos и связанную информацию с точки зрения клиента. Он захватывает всю информацию, которую Центр распределения ключей (KDC) отправляет клиенту в сообщении ответа KDC-REP, определённом в спецификации протокола Kerberos (RFC 4120).

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

Возможно, для доступа к экземпляру KerberosTicket из Subject, приложению потребуется разрешение PrivateCredentialPermission. Это разрешение не требуется, когда приложение полагается на стандартный механизм 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 на предмет равенства.

Date getAuthTime()

Возвращает время аутентификации клиента.

KerberosPrincipal getClient()

Возвращает главного принципала клиента, связанного с этим билетом.

InetAddress[] getClientAddresses()

Возвращает список адресов, с которых можно использовать билет.

byte[] getEncoded()

Возвращает ASN.1 кодирование всего билета.

Date getEndTime()

Возвращает время истечения срока действия этого билета.

boolean[] getFlags()

Возвращает флаги, связанные с этим билетом.

Date getRenewTill()

Возвращает последнее время истечения срока действия билета, включая все продления.

KerberosPrincipal getServer()

Возвращает главного принципала сервиса, связанного с этим билетом.

SecretKey getSessionKey()

Возвращает сессионный ключ, связанный с этим билетом.

int getSessionKeyType()

Возвращает тип ключа сессии, связанный с этим билетом, как определено в спецификации протокола Kerberos.

Date getStartTime()

Возвращает время начала срока действия этого билета.

int hashCode()

Возвращает хэш-код для этого KerberosTicket.

boolean isCurrent()

Определяет, является ли этот билет актуальным.

boolean isDestroyed()

Определяет, был ли этот билет уничтожен.

boolean isForwardable()

Определяет, является ли этот билет переадресовываемым.

boolean isForwarded()

Определяет, был ли этот билет переадресован или выдан на основе аутентификации, включающей переадресованный билет-сертификат.

boolean isInitial()

Определяет, был ли этот билет выдан с использованием протокола Kerberos AS-Exchange, а не на основе какого-либо билета-сертификата.

boolean isPostdated()

Определяет, является ли этот билет с датой будущего.

boolean isProxiable()

Определяет, является ли этот билет переадресовываемым.

boolean isProxy()

Определяет, является ли этот билет билетом-прокси.

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()

Определяет, может ли этот билет быть передан (forwardable).

Возвращает:
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()

Определяет, является ли этот билет сдвинутым по времени вперёд (post-dated).

Возвращает:
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.

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

equals

public boolean equals(Object other)

Сравнивает указанный объект с этим KerberosTicket на равенство. Возвращает true, если заданный объект также является KerberosTicket и два экземпляра KerberosTicket эквивалентны. Уничтоженный объект KerberosTicket равен только самому себе.

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

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

Spec-Zone .ru
спецификации, руководства, описания, API