Spec-Zone.ru › OpenJDK 21

Класс SSLContext

java.lang.Object
javax.net.ssl.SSLContext
public class SSLContext extends Object
Экземпляры этого класса представляют реализацию протокола защищённого сокета, которая действует как фабрика для защищённых сокет-фабрик или SSLEngine. Этот класс инициализируется с набором (необязательным) менеджеров ключей и доверия, а также источником защищённых случайных байтов.

Каждая реализация Java платформы обязана поддерживать следующие стандартные SSLContext протокол:

  • TLSv1.2
Этот протокол описан в разделе SSLContext спецификации стандартных имён алгоритмов Java Security. Обратитесь к документации выпуска вашей реализации, чтобы узнать, поддерживаются ли другие протоколы.
Since:
1.4

Краткое описание конструкторов

SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
Модификатор Конструктор Описание
protected
Создаёт объект SSLContext.

Краткое описание методов

Модификатор и тип Метод Описание
final SSLEngine createSSLEngine()
Создаёт новый SSLEngine с использованием этого контекста.
final SSLEngine createSSLEngine(String peerHost, int peerPort)
Создаёт новый SSLEngine с использованием этого контекста, используя справочную информацию о peer.
final SSLSessionContext getClientSessionContext()
Возвращает контекст сеанса клиента, который представляет набор SSL сеансов, доступных для использования во время фазы рукопожатия SSL сокетов стороны клиента.
static SSLContext getDefault()
Возвращает контекст SSL по умолчанию.
final SSLParameters getDefaultSSLParameters()
Возвращает копию SSLParameters, указывающую значения по умолчанию для этого контекста SSL.
static SSLContext getInstance(String protocol)
Возвращает объект SSLContext, реализующий указанный протокол защищённого сокета.
static SSLContext getInstance(String protocol, String provider)
Возвращает объект SSLContext, реализующий указанный протокол защищённого сокета.
static SSLContext getInstance(String protocol, Provider provider)
Возвращает объект SSLContext, реализующий указанный протокол защищённого сокета.
final String getProtocol()
Возвращает имя протокола этого объекта SSLContext.
final Provider getProvider()
Возвращает поставщика этого объекта SSLContext.
final SSLSessionContext getServerSessionContext()
Возвращает контекст сеанса сервера, который представляет набор SSL сеансов, доступных для использования во время фазы рукопожатия SSL сокетов стороны сервера.
final SSLServerSocketFactory getServerSocketFactory()
Возвращает объект ServerSocketFactory для этого контекста.
final SSLSocketFactory getSocketFactory()
Возвращает объект SocketFactory для этого контекста.
final SSLParameters getSupportedSSLParameters()
Возвращает копию SSLParameters, указывающую поддерживаемые настройки для этого контекста SSL.
final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random)
Инициализирует этот контекст.
static void setDefault(SSLContext context)
Устанавливает контекст SSL по умолчанию.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

SSLContext

protected SSLContext(SSLContextSpi contextSpi, Provider provider, String protocol)
Создаёт объект SSLContext.
Параметры:
contextSpi - делегат
provider - провайдер
protocol - протокол

Подробное описание методов

getDefault

public static SSLContext getDefault() throws NoSuchAlgorithmException
Возвращает стандартный SSL контекст.

Если контекст по умолчанию был задан с помощью метода SSLContext.setDefault(), он возвращается. В противном случае, первый вызов этого метода запускает вызов SSLContext.getInstance("Default"). Если успешно, этот объект становится стандартным SSL контекстом и возвращается.

Контекст по умолчанию сразу готов к использованию и не требует инициализации.

Возвращает:
стандартный SSL контекст
Исключения:
NoSuchAlgorithmException - если вызов SSLContext.getInstance() завершается ошибкой
С момента:
1.6

setDefault

public static void setDefault(SSLContext context)
Устанавливает стандартный SSL контекст. Он будет возвращаться последующими вызовами getDefault(). Контекст по умолчанию должен быть сразу готов к использованию и не требует инициализации.
Параметры:
context - SSLContext
Исключения:
NullPointerException - если контекст равен null
SecurityException - если менеджер безопасности существует и его метод checkPermission не позволяет SSLPermission("setDefaultSSLContext")
С момента:
1.6

getInstance

public static SSLContext getInstance(String protocol) throws NoSuchAlgorithmException
Возвращает объект SSLContext, который реализует указанный протокол защищённого сокета.

Этот метод обходит список зарегистрированных поставщиков безопасности, начиная с предпочтительного. Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi из первого поставщика, поддерживающего указанный протокол.

Обратите внимание, что список зарегистрированных поставщиков можно получить через метод Security.getProviders().

Описание реализации:
Реализация JDK дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Это может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
protocol - стандартное имя запрошенного протокола. См. раздел SSLContext в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах протоколов.
Возвращает:
новый объект SSLContext
Исключения:
NoSuchAlgorithmException - если ни один поставщик не поддерживает реализацию Provider для указанного протокола
NullPointerException - если protocol является null
См. также:
  • Provider

getInstance

public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает объект SSLContext, который реализует указанный протокол защищённого сокета.

Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi от указанного поставщика. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить через метод Security.getProviders().

Параметры:
protocol - стандартное имя запрошенного протокола. См. раздел SSLContext в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах протоколов.
provider - имя поставщика.
Возвращает:
новый объект SSLContext
Исключения:
IllegalArgumentException - если имя поставщика null или пустое
NoSuchAlgorithmException - если реализация SSLContextSpi для указанного протокола недоступна от указанного поставщика
NoSuchProviderException - если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException - если protocol является null
См. также:
  • Provider

getInstance

public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException
Возвращает объект SSLContext, который реализует указанный протокол защищённого сокета.

Возвращается новый объект SSLContext, инкапсулирующий реализацию SSLContextSpi от указанного объекта поставщика. Обратите внимание, что указанный объект поставщика не обязательно должен быть зарегистрирован в списке поставщиков.

Параметры:
protocol - стандартное имя запрошенного протокола. См. раздел SSLContext в Спецификации Java Security Standard Algorithm Names для получения информации о стандартных именах протоколов.
provider - экземпляр поставщика.
Возвращает:
новый объект SSLContext
Исключения:
IllegalArgumentException - если поставщик null
NoSuchAlgorithmException - если реализация SSLContextSpi для указанного протокола недоступна от указанного объекта Provider
NullPointerException - если protocol является null
См. также:
  • Provider

getProtocol

public final String getProtocol()
Возвращает имя протокола этого объекта SSLContext.

Это то же имя, которое было указано в одном из вызовов getInstance, которые создали этот объект SSLContext.

Возвращает:
имя протокола этого объекта SSLContext.

getProvider

public final Provider getProvider()
Возвращает поставщика этого объекта SSLContext.
Возвращает:
поставщик этого объекта SSLContext

init

public final void init(KeyManager[] km, TrustManager[] tm, SecureRandom random) throws KeyManagementException
Инициализирует этот контекст. Любой из первых двух параметров может быть null, в этом случае установленные поставщики безопасности будут искать наиболее приоритетную реализацию соответствующего фабричного метода. Аналогично, параметр secure random может быть null, в этом случае будет использоваться реализация по умолчанию.

Используется только первый экземпляр определённого типа менеджера ключей и/или менеджера доверия в массиве. (Например, будет использован только первый javax.net.ssl.X509KeyManager в массиве.)

Параметры:
km - источники ключей аутентификации или null
tm - источники принятия решений о доверии к аутентификации peer или null
random - источник случайности для этого генератора или null
Исключения:
KeyManagementException - если операция завершается ошибкой

getSocketFactory

public final SSLSocketFactory getSocketFactory()
Возвращает объект SocketFactory для этого контекста.
Возвращает:
объект SocketFactory
Исключения:
UnsupportedOperationException - если базовый поставщик не реализует операцию.
IllegalStateException - если SSLContextImpl требует инициализации, и метод init() не был вызван

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
Возвращает объект ServerSocketFactory для этого контекста.
Возвращает:
объект ServerSocketFactory
Исключения:
UnsupportedOperationException - если базовый поставщик не реализует операцию.
IllegalStateException - если SSLContextImpl требует инициализации, и метод init() не был вызван

createSSLEngine

public final SSLEngine createSSLEngine()
Создаёт новый SSLEngine с использованием данного контекста.

Приложения, использующие этот метод-фабрику, не предоставляют подсказок для внутренней стратегии повторного использования сеанса. Если такие подсказки необходимы, следует использовать createSSLEngine(String, int) вместо этого.

Некоторые наборы шифров (например, Kerberos) требуют информацию о удалённом имени хоста, в этом случае этот метод-фабрику использовать не следует.

Примечание реализации:
Зависит от поставщика, использует ли возвращаемый SSLEngine режим клиента или сервера по умолчанию для подключения (D)TLS. Реализация JDK SunJSSE по умолчанию использует режим сервера. Однако рекомендуется всегда явно задавать желаемый режим, вызвав SSLEngine.setUseClientMode(), перед вызовом других методов SSLEngine.
Возвращает:
объект SSLEngine
Исключения:
UnsupportedOperationException - если базовый поставщик не реализует операцию.
IllegalStateException - если SSLContextImpl требует инициализации, и init() не был вызван
С тех пор:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String peerHost, int peerPort)
Создаёт новый SSLEngine с использованием данного контекста с использованием консультационной информации о клиенте.

Приложения, использующие этот метод-фабрику, предоставляют подсказки для внутренней стратегии повторного использования сеанса.

Некоторые наборы шифров (например, Kerberos) требуют информацию о удалённом имени хоста, в этом случае peerHost должен быть указан.

Примечание реализации:
Зависит от поставщика, использует ли возвращаемый SSLEngine режим клиента или сервера по умолчанию для подключения (D)TLS. Реализация JDK SunJSSE по умолчанию использует режим сервера. Однако рекомендуется всегда явно задавать желаемый режим, вызвав SSLEngine.setUseClientMode(), перед вызовом других методов SSLEngine.
Параметры:
peerHost - неофициальное имя хоста
peerPort - неофициальный порт
Возвращает:
новый объект SSLEngine
Исключения:
UnsupportedOperationException - если базовый поставщик не реализует операцию.
IllegalStateException - если SSLContextImpl требует инициализации, и init() не был вызван
С тех пор:
1.5

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
Возвращает контекст сеанса сервера, который представляет собой набор SSL-сеансов, доступных для использования во время фазы рукопожатия сокетов SSL на стороне сервера.

В некоторых средах этот контекст может быть недоступен, в этом случае этот метод возвращает null. Например, когда базовый поставщик SSL не предоставляет реализацию интерфейса SSLSessionContext, этот метод возвращает null. В противном случае возвращается контекст сеанса, отличный от null.

Возвращает:
контекст сеанса сервера, привязанный к данному SSL-контексту

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
Возвращает контекст сеанса клиента, который представляет собой набор SSL-сеансов, доступных для использования во время фазы рукопожатия сокетов SSL на стороне клиента.

В некоторых средах этот контекст может быть недоступен, в этом случае этот метод возвращает null. Например, когда базовый поставщик SSL не предоставляет реализацию интерфейса SSLSessionContext, этот метод возвращает null. В противном случае возвращается контекст сеанса, отличный от null.

Возвращает:
контекст сеанса клиента, привязанный к данному SSL-контексту

getDefaultSSLParameters

public final SSLParameters getDefaultSSLParameters()
Возвращает копию SSLParameters, указывающую значения параметров по умолчанию для данного SSL-контекста.

Массивы ciphersuites и protocols всегда будут иметь ненулевые значения.

Возвращает:
копию объекта SSLParameters со значениями параметров по умолчанию
Исключения:
UnsupportedOperationException - если параметры SSL по умолчанию получить не удалось.
С тех пор:
1.6

getSupportedSSLParameters

public final SSLParameters getSupportedSSLParameters()
Возвращает копию SSLParameters, указывающую поддерживаемые значения параметров для данного SSL-контекста.

Массивы ciphersuites и protocols всегда будут иметь ненулевые значения.

Возвращает:
копию объекта SSLParameters с поддерживаемыми значениями параметров
Исключения:
UnsupportedOperationException - если поддерживаемые параметры SSL получить не удалось.
С тех пор:
1.6

© 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/SSLContext.html

Spec-Zone.ru

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