Интерфейс 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, ожидаемого при использовании этой сессии. |
X509Certificate[] |
getPeerCertificateChain() Возвращает идентификатор удалённого узла, определённый при формировании сессии. |
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) Связывает указанный |
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) Связывает указанный объект уровня приложения в данные сессии с заданным именем.
Любое существующее связывание с тем же именем заменяется. Если новый (или существующий) объект реализует интерфейс SSLSessionBindingListener, объект, представленный value, уведомляется должным образом.
По соображениям безопасности значения с одинаковыми именами могут быть невидимыми в разных контекстах управления доступом.
- Параметры:
-
name- имя, к которому будет привязано данные. Не может быть null. -
value- данные для привязки. Не может быть null. - Исключение:
-
IllegalArgumentException- если любой из аргументов равен null.
getValue
Object getValue(String name)
Возвращает объект, привязанный к заданному имени в данных сессии приложения. Возвращает null, если такого связывания нет.
По соображениям безопасности значения с одинаковыми именами могут быть невидимыми в разных контекстах управления доступом.
- Параметры:
-
name- имя связывания для поиска. - Возвращает:
- значение, связанное с этим именем, или null, если связывание не существует.
- Исключение:
-
IllegalArgumentException- если аргумент равен null.
removeValue
void removeValue(String name)
Удаляет объект, привязанный к заданному имени в данных сессии приложения. Не делает ничего, если объект не привязан к заданному имени. Если привязанный объект реализует интерфейс SessionBindingListener, он уведомляется должным образом.
По соображениям безопасности значения с одинаковыми именами могут быть невидимыми в разных контекстах управления доступом.
- Параметры:
-
name- имя объекта для удаления. - Исключение:
-
IllegalArgumentException- если аргумент равен null.
getValueNames
String[] getValueNames()
Возвращает массив имен всех объектов данных приложения, привязанных к сессии.
По соображениям безопасности значения с одинаковыми именами могут быть невидимыми в разных контекстах управления доступом.
- Возвращает:
- непустой массив имен объектов, привязанных к этой сессии.
getPeerCertificates
Certificate[] getPeerCertificates()
throws SSLPeerUnverifiedException Возвращает идентификатор узла, который был установлен при определении сессии.
Примечание: этот метод может быть использован только при использовании шифров на основе сертификатов; использование его с шифрами без сертификатов, таких как Kerberos, вызовет SSLPeerUnverifiedException.
- Возвращает:
- упорядоченный массив сертификатов узла, начиная с сертификата самого узла, за которым следуют сертификаты центров сертификации.
- Исключение:
-
SSLPeerUnverifiedException- если идентификатор узла не был проверен - См. также:
getPeerPrincipal()
getLocalCertificates
Certificate[] getLocalCertificates()
Возвращает сертификат(ы), который(е) были отправлены узлу во время рукопожатия.
Примечание: этот метод полезен только при использовании шифров на основе сертификатов.
Когда для рукопожатия доступно несколько сертификатов, реализация выбирает то, что считает «лучшей» цепочкой сертификатов, доступной, и отправляет её на другую сторону. Этот метод позволяет вызывающему методу узнать, какая цепочка сертификатов фактически была использована.
- Возвращает:
- упорядоченный массив сертификатов, начиная с локального сертификата, за которым следуют сертификаты центров сертификации. Если сертификаты не отправлялись, возвращается null.
- См. также:
getLocalPrincipal()
getPeerCertificateChain
X509Certificate[] getPeerCertificateChain()
throws SSLPeerUnverifiedException Возвращает идентификатор узла, который был определен как часть определения сессии.
Примечание: этот метод может быть использован только при использовании шифров на основе сертификатов; использование его с шифрами без сертификатов, таких как Kerberos, вызовет SSLPeerUnverifiedException.
Примечание: этот метод существует для совместимости с предыдущими выпусками. Новые приложения должны использовать getPeerCertificates() вместо этого.
- Возвращает:
- упорядоченный массив сертификатов X.509 узла, начиная с сертификата самого узла, за которым следуют сертификаты центров сертификации. (Сертификаты имеют формат исходного сертификата JSSE
X509Certificate.) - Исключение:
-
SSLPeerUnverifiedException- если идентификатор узла не был проверен - См. также:
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, ожидаемого при использовании этого сеанса.
Любое SSLEngine использование этого сеанса может генерировать пакеты SSL/TLS любого размера до и включая значение, возвращаемое этим методом. Все 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, 2020, 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.