Интерфейс SSLSession
- Все известные реализующие классы:
ExtendedSSLSession
public interface SSLSession
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 может быть удалён в будущей версии. |
Certificate[] |
getPeerCertificates() |
Возвращает идентификатор участника, установленный во время определения сессии. |
String |
getPeerHost() |
Возвращает имя хоста участника в этой сессии. |
int |
getPeerPort() |
Возвращает номер порта участника в этой сессии. |
Principal |
getPeerPrincipal() |
Возвращает идентификатор участника, установленный во время определения сессии. |
String |
getProtocol() |
Возвращает стандартное имя протокола, используемого для всех подключений в сессии. |
SSLSessionContext |
getSessionContext() |
Возвращает контекст, к которому привязана эта сессия. |
Object |
getValue |
Возвращает объект, привязанный к заданному имени в данных приложения сессии. |
String[] |
getValueNames() |
Возвращает массив имён всех объектов данных приложения, привязанных к сессии. |
void |
invalidate() |
Аннулирует сессию. |
boolean |
isValid() |
Возвращает, является ли эта сессия действительной и доступной для возобновления или присоединения. |
void |
putValue |
Привязывает указанный value объект к данным приложения сессии с заданным name. |
void |
removeValue |
Удаляет объект, привязанный к заданному имени в данных приложения сессии. |
Подробное описание методов
getId
byte[] getId()
- Возвращает:
- идентификатор сессии
getSessionContext
SSLSessionContext getSessionContext()
В некоторых средах этот контекст может быть недоступен, в этом случае метод возвращает null.
Если контекст доступен и установлен менеджер безопасности, для доступа к нему может потребоваться разрешение, или может быть брошено исключение безопасности. В среде Java вызывается метод менеджера безопасности checkPermission с разрешением SSLPermission("getSSLSessionContext").
- Возвращает:
- контекст сессии, используемый для данной сессии, или null, если контекст недоступен.
- Исключение:
-
SecurityException- если у потока вызова нет разрешения на получение контекста SSL-сессии.
getCreationTime
long getCreationTime()
- Возвращает:
- время создания сессии
getLastAccessedTime
long getLastAccessedTime()
Доступ означает установление нового подключения с использованием данных сессии. Операции уровня приложения, такие как получение или установка значения, связанного с сессией, не отражаются в этом времени доступа.
Эта информация особенно полезна в политиках управления сессиями. Например, поток менеджера сессий может оставлять все сессии в данном контексте, которые не использовались в течение длительного времени; или сессии могут сортироваться по возрасту для оптимизации некоторых задач.
- Возвращает:
- последнее время доступа к сессии
invalidate
void invalidate()
Будущие подключения не смогут возобновить или присоединиться к этой сессии. Однако любые существующие подключения, использующие эту сессию, могут продолжать использовать сессию до закрытия подключения.
- См. также:
isValid
boolean isValid()
- Возвращает:
- true, если к этой сессии можно присоединиться.
- С:
- 1.5
- См. также:
putValue
void putValue(String name, Object value)
value с данными приложения сессии с заданным именем name. Любая существующая привязка с тем же именем name заменяется. Если новый (или существующий) объект value реализует интерфейс SSLSessionBindingListener, объект, представленный value, уведомляется соответствующим образом.
По соображениям безопасности значения с одинаковыми именами могут быть не видны в разных контекстах управления доступом.
- Параметры:
-
name- имя, к которому будет привязано данные объекта. Не может быть null. -
value- данные объекта, который необходимо привязать. Не может быть null. - Исключение:
-
IllegalArgumentException- если любой из аргументов null.
getValue
Object getValue(String name)
По соображениям безопасности значения с одинаковыми именами могут быть не видны в разных контекстах управления доступом.
- Параметры:
-
name- имя привязки для поиска. - Возвращает:
- значение, привязанное к этому имени, или null, если привязки нет.
- Исключение:
-
IllegalArgumentException- если аргумент null.
removeValue
void removeValue(String name)
SSLSessionBindingListener, он уведомляется соответствующим образом. По соображениям безопасности значения с одинаковыми именами могут быть не видны в разных контекстах управления доступом.
- Параметры:
-
name- имя объекта для удаления. - Исключение:
-
IllegalArgumentException- если аргумент null.
getValueNames
String[] getValueNames()
По соображениям безопасности значения с одинаковыми именами могут быть не видны в разных контекстах управления доступом.
- Возвращает:
- непустой (возможно пустой) массив имён объектов, привязанных к этой сессии.
getPeerCertificates
Certificate[] getPeerCertificates() throws SSLPeerUnverifiedException
Примечание: этот метод может использоваться только при использовании криптографических наборов с сертификатами; использование его с криптографическими наборами без сертификатов, такими как Kerberos, приведёт к исключению SSLPeerUnverifiedException.
Примечание: возвращаемое значение может не быть корректной цепочкой сертификатов и не должно использоваться для принятия решений о доверии.
- Возвращает:
- упорядоченный массив сертификатов узла, где сертификат самого узла идёт первым, а затем сертификаты центров сертификации.
- Исключение:
-
SSLPeerUnverifiedException- если идентификатор узла не был проверен - См. также:
getLocalCertificates
Certificate[] getLocalCertificates()
Примечание: этот метод полезен только при использовании криптографических наборов с сертификатами.
Когда для рукопожатия доступно несколько сертификатов, реализация выбирает, что она считает «лучшей» цепочкой сертификатов, доступной, и передаёт её на другую сторону. Этот метод позволяет вызывающей стороне узнать, какая цепочка сертификатов была фактически использована.
- Возвращает:
- упорядоченный массив сертификатов, где локальный сертификат идёт первым, а затем сертификаты центров сертификации. Если сертификаты не были отправлены, возвращается null.
- См. также:
getPeerCertificateChain
@Deprecated(since="9", forRemoval=true) default X509Certificate[] getPeerCertificateChain() throws SSLPeerUnverifiedException
getPeerCertificates(), который возвращает массив java.security.cert.Certificate.Примечание: этот метод может использоваться только при использовании криптографических наборов с сертификатами; использование его с криптографическими наборами без сертификатов, такими как Kerberos, приведёт к исключению SSLPeerUnverifiedException.
Примечание: возвращаемое значение может не быть корректной цепочкой сертификатов и не должно использоваться для принятия решений о доверии.
Примечание: этот метод существует для совместимости с предыдущими выпусками. Новые приложения должны использовать getPeerCertificates() вместо него.
- Требования к реализации:
- Эта реализация по умолчанию генерирует UnsupportedOperationException.
- Возвращает:
- упорядоченный массив сертификатов X.509 узла, где сертификат самого узла идёт первым, а затем сертификаты центров сертификации. (Сертификаты находятся в формате сертификатов JSSE
X509Certificate). - Исключение:
-
SSLPeerUnverifiedException- если идентификатор узла не был проверен. -
UnsupportedOperationException- если базовый поставщик не реализует операцию. - См. также:
getPeerPrincipal
Principal getPeerPrincipal() throws SSLPeerUnverifiedException
- Возвращает:
- главную информацию о узле. Возвращает X500Principal для сертификата конечного узла в криптографических наборах на основе X509, и KerberosPrincipal для криптографических наборов Kerberos.
- Исключение:
-
SSLPeerUnverifiedException- если идентификатор узла не был проверен - С:
- 1.5
- См. также:
getLocalPrincipal
Principal getLocalPrincipal()
- Возвращает:
- главную информацию, отправленную узлу. Возвращает X500Principal для сертификата конечного узла в криптографических наборах на основе X509, и KerberosPrincipal для криптографических наборов Kerberos. Если главная информация не была отправлена, возвращается null.
- С:
- 1.5
- См. также:
getCipherSuite
String getCipherSuite()
Это определяет уровень защиты, предоставляемый данным, отправляемым по соединению, включая вид шифрования и большинство аспектов того, как выполняется аутентификация.
- Возвращает:
- имя криптографического набора сессии
getProtocol
String getProtocol()
Это определяет протокол, используемый в подключении.
- Возвращает:
- стандартное имя протокола, используемого для всех подключений в сеансе.
getPeerHost
String getPeerHost()
Для сервера это хост клиента; для клиента — хост сервера. Имя может не быть полным именем хоста или даже именем хоста вообще, так как оно может представлять строковое кодирование сетевого адреса удалённого узла. Если такое имя требуется, его можно разрешить через службу имен, основанную на значении, возвращаемом этим методом.
Это значение не аутентифицировано и ему нельзя доверять. Оно используется в основном как подсказка для SSLSession стратегий кэширования.
- Возвращает:
- имя хоста удалённого узла или null, если информация недоступна.
getPeerPort
int getPeerPort()
Для сервера это номер порта клиента; для клиента — номер порта сервера.
Это значение не аутентифицировано и ему нельзя доверять. Оно используется в основном как подсказка для SSLSession стратегий кэширования.
- Возвращает:
- номер порта удалённого узла, или -1, если информация недоступна.
- С:
- 1.5
getPacketBufferSize
int getPacketBufferSize()
Любой SSLEngine , использующий этот сеанс, может генерировать пакеты SSL/TLS/DTLS любого размера, не превышающего значения, возвращаемого этим методом. Все SSLEngine сетевые буферы должны быть размером не менее этого значения, чтобы избежать проблем с недостаточным пространством при выполнении wrap и unwrap вызовов.
- Возвращает:
- текущий максимальный ожидаемый размер сетевого пакета
- С:
- 1.5
- См. также:
getApplicationBufferSize
int getApplicationBufferSize()
SSLEngine буферы данных приложения должны быть достаточно большими, чтобы содержать данные приложения из любого входящего сетевого пакета с данными приложения. Как правило, буферы исходящих данных приложения могут быть любого размера.
- Возвращает:
- текущий максимальный ожидаемый размер пакета приложения
- С:
- 1.5
- См. также:
© 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
getPeerCertificates(), возвращающий массивjava.security.cert.Certificate.