Spec-Zone.ru › OpenJDK 24

Интерфейс 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()
Возвращает массив имен всех объектов данных приложения, привязанных к сеансу.
Возвращает:
непустой (возможно, пустой) массив имен объектов, привязанных к этому сеансу.

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
Возвращает идентификатор клиента, установленный при определении сеанса.
Возвращает:
принципал клиента. Возвращает X500Principal для сертификатов X509 и KerberosPrincipal для Kerberos.
Исключения:
SSLPeerUnverifiedException - если идентификатор клиента не был проверен
С:
1.5
См. также:
  • getPeerCertificates()
  • getLocalPrincipal()

getLocalPrincipal

Principal getLocalPrincipal()
Возвращает принципал, который был отправлен клиенту во время рукопожатия.
Возвращает:
принципал, отправленный клиенту. Возвращает X500Principal для сертификатов X509 и KerberosPrincipal для Kerberos. Если принципал не был отправлен, возвращается 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)

© 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.base/javax/net/ssl/SSLSession.html

Spec-Zone.ru

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