Spec-Zone.ru › OpenJDK 17

Интерфейс 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.

Если контекст доступен и установлен менеджер безопасности, для доступа к нему может потребоваться разрешение, или может быть брошено исключение безопасности. В среде Java вызывается метод менеджера безопасности checkPermission с разрешением SSLPermission("getSSLSessionContext").

Возвращает:
контекст сессии, используемый для данной сессии, или null, если контекст недоступен.
Исключение:
SecurityException - если у потока вызова нет разрешения на получение контекста SSL-сессии.

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, 2021, 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/17/docs/api/java.base/javax/net/ssl/SSLSession.html

Spec-Zone.ru

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