Класс 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).
Все модули входа 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) | Создаёт |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | destroy() | Уничтожает билет и любые чувствительные данные, хранящиеся в нём. |
boolean | equals(Object other) | Сравнивает указанный объект с этим |
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() | Возвращает хэш-код для этого |
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() | Возвращает информативное текстовое представление этого |
Методы, унаследованные от класса 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