Spec-Zone.ru › OpenJDK 25

Интерфейс SSLSession

Все известные реализующие классы:
ExtendedSSLSession
public interface SSLSession
В SSL сеансы используются для описания продолжающихся отношений между двумя сущностями. Каждое SSL-соединение включает один сеанс, но этот сеанс может одновременно или последовательно использоваться во многих соединениях между этими сущностями. Сеанс, используемый в соединении, также может быть заменён другим сеансом. Сеансы создаются или возобновляются в рамках протокола SSL-рукопожатия. Сеансы могут быть аннулированы в соответствии с политиками безопасности или использования ресурсов либо в результате явного вызова приложением invalidate. Политики управления сеансами обычно используются для настройки производительности.

Помимо стандартных атрибутов сеанса, SSL-сеансы предоставляют следующие атрибуты только для чтения:

  • Идентификатор узла-партнёра. Сеансы устанавливаются между определённым клиентом и определённым сервером. Идентификатор узла-партнёра может быть установлен в процессе настройки сеанса. Узлы-партнёры обычно идентифицируются цепочками сертификатов X.509.
  • Название набора шифров. Наборы шифров описывают тип криптографической защиты, используемой соединениями в определённом сеансе.
  • Узел-партнёр. Все соединения в сеансе устанавливаются между одними и теми же двумя узлами. Доступен адрес узла на другом конце соединения.

Сеансы можно аннулировать явно. Аннулирование также может выполняться неявно при возникновении определённых типов ошибок.

Начиная с:
1.4

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

Модификатор и тип Метод Описание
int getApplicationBufferSize()
Возвращает текущий размер наибольших данных приложения, ожидаемых при использовании этого сеанса.
String getCipherSuite()
Возвращает название набора шифров SSL, используемого для всех соединений в сеансе.
long getCreationTime()
Возвращает время создания этого представления сеанса в миллисекундах, прошедших с полуночи 1 января 1970 года по UTC.
byte[] getId()
Возвращает идентификатор, присвоенный этому сеансу.
long getLastAccessedTime()
Возвращает время последнего обращения к этому представлению сеанса инфраструктуры уровня сеансов в миллисекундах, прошедших с полуночи 1 января 1970 года по UTC.
Certificate[] getLocalCertificates()
Возвращает сертификат или сертификаты, отправленные узлу-партнёру во время рукопожатия.
Principal getLocalPrincipal()
Возвращает принципал, отправленный узлу-партнёру во время рукопожатия.
int getPacketBufferSize()
Возвращает текущий размер наибольшего пакета SSL/TLS/DTLS, ожидаемого при использовании этого сеанса.
default X509Certificate[] getPeerCertificateChain()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Вместо него следует использовать метод getPeerCertificates(), возвращающий массив объектов java.security.cert.Certificate.
Certificate[] getPeerCertificates()
Возвращает идентификатор узла-партнёра, установленный при определении сеанса.
String getPeerHost()
Возвращает имя узла-партнёра в этом сеансе.
int getPeerPort()
Возвращает номер порта узла-партнёра в этом сеансе.
Principal getPeerPrincipal()
Возвращает идентификатор узла-партнёра, установленный при определении сеанса.
String getProtocol()
Возвращает стандартное название протокола, используемого для всех соединений в сеансе.
SSLSessionContext getSessionContext()
Возвращает контекст, в котором привязан этот сеанс.
Object getValue(String name)
Возвращает объект, привязанный к указанному имени в данных прикладного уровня сеанса.
String[] getValueNames()
Возвращает массив имён всех объектов данных прикладного уровня, привязанных к сеансу.
void invalidate()
Аннулирует сеанс.
boolean isValid()
Возвращает сведения о том, является ли этот сеанс действительным и доступным для возобновления или присоединения.
void putValue(String name, Object value)
Привязывает указанный объект value к данным прикладного уровня сеанса под именем name.
void removeValue(String name)
Удаляет объект, привязанный к указанному имени в данных прикладного уровня сеанса.

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

getId

byte[] getId()
Возвращает идентификатор, присвоенный этому сеансу.
Возвращает:
идентификатор сеанса

getSessionContext

SSLSessionContext getSessionContext()
Возвращает контекст, в котором привязан этот сеанс.

В некоторых средах этот контекст может быть недоступен; в таком случае метод возвращает null.

Возвращает:
контекст сеанса, используемый для этого сеанса, или null, если контекст недоступен.

getCreationTime

long getCreationTime()
Возвращает время создания этого представления сеанса в миллисекундах, прошедших с полуночи 1 января 1970 года по UTC.
Возвращает:
время создания этого сеанса

getLastAccessedTime

long getLastAccessedTime()
Возвращает время последнего обращения к этому представлению сеанса инфраструктуры уровня сеансов в миллисекундах, прошедших с полуночи 1 января 1970 года по UTC.

Обращение означает установление нового соединения с использованием данных сеанса. Операции на уровне приложения, например получение или установка значения, связанного с сеансом, не учитываются при определении времени последнего обращения.

Эта информация особенно полезна для политик управления сеансами. Например, поток управления сеансами может удалить из заданного контекста все сеансы, которые давно не использовались; или сеансы можно отсортировать по возрасту, чтобы оптимизировать определённую задачу.

Возвращает:
время последнего обращения к этому сеансу

invalidate

void invalidate()
Аннулирует сеанс.

Новые соединения не смогут возобновить этот сеанс или присоединиться к нему. Однако любое существующее соединение, использующее этот сеанс, может продолжать использовать его до закрытия соединения.

См. также:
  • isValid()

isValid

boolean isValid()
Возвращает сведения о том, является ли этот сеанс действительным и доступным для возобновления или присоединения.
Возвращает:
true, если к этому сеансу можно присоединиться повторно.
Начиная с:
1.5
См. также:
  • invalidate()

putValue

void putValue(String name, Object value)
Привязывает указанный объект value к данным прикладного уровня сеанса под именем name.

Существующая привязка с тем же именем name заменяется. Если новый (или существующий) объект value реализует интерфейс SSLSessionBindingListener, объект, представленный value, получает соответствующее уведомление.

Параметры:
name — имя, к которому будет привязан объект данных. Не может быть null.
value — привязываемый объект данных. Не может быть null.
Исключения:
IllegalArgumentException — если любой из аргументов равен null.

getValue

Object getValue(String name)
Возвращает объект, привязанный к указанному имени в данных прикладного уровня сеанса. Если такой привязки нет, возвращает null.
Параметры:
name — имя искомой привязки.
Возвращает:
значение, привязанное к этому имени, или null, если привязка не существует.
Исключения:
IllegalArgumentException — если аргумент равен null.

removeValue

void removeValue(String name)
Удаляет объект, привязанный к указанному имени в данных прикладного уровня сеанса. Если к указанному имени не привязан объект, ничего не происходит. Если существующий привязанный объект реализует интерфейс SSLSessionBindingListener, он получает соответствующее уведомление.
Параметры:
name — имя удаляемого объекта
Исключения:
IllegalArgumentException — если аргумент равен null.

getValueNames

String[] getValueNames()
Возвращает массив имён всех объектов данных прикладного уровня, привязанных к сеансу.
Возвращает:
не равный null массив (возможно, пустой) имён объектов, привязанных к этому сеансу.

getPeerCertificates

Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException
Возвращает идентификатор узла-партнёра, установленный при определении сеанса.

Примечание: этот метод можно использовать только с наборами шифров на основе сертификатов; при использовании с наборами шифров без сертификатов, например Kerberos, будет выброшено исключение SSLPeerUnverifiedException.

Примечание: возвращаемое значение может не быть допустимой цепочкой сертификатов, поэтому на него не следует полагаться при принятии решений о доверии.

Возвращает:
упорядоченный массив сертификатов узла-партнёра: сначала собственный сертификат узла-партнёра, затем все центры сертификации.
Исключения:
SSLPeerUnverifiedException — если идентификатор узла-партнёра не был проверен
См. также:
  • getPeerPrincipal()

getLocalCertificates

Certificate[] getLocalCertificates()
Возвращает сертификат или сертификаты, отправленные узлу-партнёру во время рукопожатия.

Примечание: этот метод полезен только при использовании наборов шифров на основе сертификатов.

Если для использования при рукопожатии доступны несколько сертификатов, реализация выбирает цепочку сертификатов, которую считает «наилучшей», и передаёт её другой стороне. Этот метод позволяет вызывающей стороне узнать, какая цепочка сертификатов была фактически использована.

Возвращает:
упорядоченный массив сертификатов: сначала локальный сертификат, затем все центры сертификации. Если сертификаты не отправлялись, возвращается null.
См. также:
  • getLocalPrincipal()

getPeerCertificateChain

@Deprecated(since="9", forRemoval=true) default X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Вместо него следует использовать метод getPeerCertificates(), возвращающий массив объектов java.security.cert.Certificate.
Возвращает идентификатор узла-партнёра, установленный при определении сеанса.

Примечание: этот метод можно использовать только с наборами шифров на основе сертификатов; при использовании с наборами шифров без сертификатов, например Kerberos, будет выброшено исключение SSLPeerUnverifiedException.

Примечание: возвращаемое значение может не быть допустимой цепочкой сертификатов, поэтому на него не следует полагаться при принятии решений о доверии.

Примечание: этот метод существует для совместимости с предыдущими выпусками. В новых приложениях вместо него следует использовать getPeerCertificates().

Требования к реализации:
Эта реализация по умолчанию выбрасывает UnsupportedOperationException.
Возвращает:
упорядоченный массив сертификатов X.509 узла-партнёра: сначала собственный сертификат узла-партнёра, затем все центры сертификации. (Сертификаты представлены в исходном формате сертификатов JSSE X509Certificate.)
Исключения:
SSLPeerUnverifiedException — если идентификатор узла-партнёра не был проверен.
UnsupportedOperationException — если базовый поставщик не реализует эту операцию.
См. также:
  • getPeerPrincipal()

getPeerPrincipal

Principal getPeerPrincipal() throws SSLPeerUnverifiedException
Возвращает идентификатор узла-партнёра, установленный при определении сеанса.
Возвращает:
принципал узла-партнёра. Для наборов шифров на основе X509 возвращает X500Principal сертификата конечного объекта, а для наборов шифров Kerberos — KerberosPrincipal.
Исключения:
SSLPeerUnverifiedException — если идентификатор узла-партнёра не был проверен
Начиная с:
1.5
См. также:
  • getPeerCertificates()
  • getLocalPrincipal()

getLocalPrincipal

Principal getLocalPrincipal()
Возвращает принципал, отправленный узлу-партнёру во время рукопожатия.
Возвращает:
принципал, отправленный узлу-партнёру. Для наборов шифров на основе X509 возвращает X500Principal сертификата конечного объекта, а для наборов шифров Kerberos — KerberosPrincipal. Если принципал не отправлялся, возвращается null.
Начиная с:
1.5
См. также:
  • getLocalCertificates()
  • getPeerPrincipal()

getCipherSuite

String getCipherSuite()
Возвращает название набора шифров SSL, используемого для всех соединений в сеансе.

Этот набор определяет уровень защиты данных, передаваемых по соединению, включая тип используемого шифрования и большинство аспектов аутентификации.

Возвращает:
название набора шифров сеанса

getProtocol

String getProtocol()
Возвращает стандартное название протокола, используемого для всех соединений в сеансе.

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

Возвращает:
стандартное название протокола, используемого для всех соединений в сеансе.

getPeerHost

String getPeerHost()
Возвращает имя узла-партнёра в этом сеансе.

Для сервера это узел клиента, а для клиента — узел сервера. Имя может не быть полным доменным именем или даже именем узла, поскольку может представлять собой строковое представление сетевого адреса узла-партнёра. Если требуется такое имя, его можно разрешить с помощью службы имён на основе значения, возвращаемого этим методом.

Это значение не аутентифицировано, и на него не следует полагаться. Оно используется главным образом как подсказка для стратегий кэширования SSLSession.

Возвращает:
имя узла-партнёра или null, если информация недоступна.

getPeerPort

int getPeerPort()
Возвращает номер порта узла-партнёра в этом сеансе.

Для сервера это номер порта клиента, а для клиента — номер порта сервера.

Это значение не аутентифицировано, и на него не следует полагаться. Оно используется главным образом как подсказка для стратегий кэширования SSLSession.

Возвращает:
номер порта узла-партнёра или -1, если информация недоступна.
Начиная с:
1.5

getPacketBufferSize

int getPacketBufferSize()
Возвращает текущий размер наибольшего пакета SSL/TLS/DTLS, ожидаемого при использовании этого сеанса.

SSLEngine, использующий этот сеанс, может создавать пакеты SSL/TLS/DTLS любого размера вплоть до значения, возвращаемого этим методом включительно. Размер всех сетевых буферов SSLEngine должен быть не меньше этого значения, чтобы избежать нехватки места при вызовах wrap и unwrap.

Возвращает:
текущий максимальный ожидаемый размер сетевого пакета
Начиная с:
1.5
См. также:
  • SSLEngine.wrap(ByteBuffer, ByteBuffer)
  • SSLEngine.unwrap(ByteBuffer, ByteBuffer)

getApplicationBufferSize

int getApplicationBufferSize()
Возвращает текущий размер наибольших данных приложения, ожидаемых при использовании этого сеанса.

Буферы входящих данных приложения SSLEngine должны быть достаточно большими, чтобы вместить данные приложения из любого полученного входящего сетевого пакета с данными приложения. Как правило, исходящие буферы данных приложения могут иметь любой размер.

Возвращает:
текущий максимальный ожидаемый размер пакета приложения
Начиная с:
1.5
См. также:
  • SSLEngine.wrap(ByteBuffer, ByteBuffer)
  • SSLEngine.unwrap(ByteBuffer, ByteBuffer)

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/javax/net/ssl/SSLSession.html

Spec-Zone.ru

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