Spec-Zone.ru › OpenJDK 21

Интерфейс 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, 2023, 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/21/docs/api/java.base/javax/net/ssl/SSLSession.html

Spec-Zone.ru

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