Spec-Zone.ru › OpenJDK 27

Класс StartTlsResponse

java.lang.Object
javax.naming.ldap.StartTlsResponse
Все реализуемые интерфейсы:
Serializable, ExtendedResponse
public abstract class StartTlsResponse extends Object implements ExtendedResponse
Этот класс реализует расширенный ответ LDAPv3 для StartTLS, определённый в документе Протокол доступа к облегчённым каталогам (v3): расширение для протокола TLS. Идентификатор объекта для StartTLS — 1.3.6.1.4.1.1466.20037; значение расширенного ответа не определено.

Расширенный запрос и ответ StartTLS используются для установления TLS-соединения поверх существующего LDAP-соединения, связанного с контекстом JNDI, для которого вызывается extendedOperation(). Обычно программа JNDI использует классы расширенного запроса и ответа StartTLS следующим образом.

 import javax.naming.ldap.*;

 // Open an LDAP association
 LdapContext ctx = new InitialLdapContext();

 // Perform a StartTLS extended operation
 StartTlsResponse tls =
     (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());

 // Open a TLS connection (over the existing LDAP association) and get details
 // of the negotiated TLS session: cipher suite, peer certificate, ...
 SSLSession session = tls.negotiate();

 // ... use ctx to perform protected LDAP operations

 // Close the TLS connection (revert back to the underlying LDAP association)
 tls.close();

 // ... use ctx to perform unprotected LDAP operations

 // Close the LDAP association
 ctx.close;
 
Начиная с версии:
1.4
См. также:
  • StartTlsRequest
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final String OID
Назначенный идентификатор объекта расширенного ответа StartTLS: 1.3.6.1.4.1.1466.20037.

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

StartTlsResponse()
Модификатор Конструктор Описание
protected
Создаёт расширенный ответ StartTLS.

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

Модификатор и тип Метод Описание
abstract void close()
Корректно закрывает TLS-соединение и возвращается к базовому соединению.
byte[] getEncodedValue()
Возвращает значение ответа StartTLS в кодировке ASN.1 BER.
String getID()
Возвращает строку идентификатора объекта ответа StartTLS.
abstract SSLSession negotiate()
Согласовывает сеанс TLS с помощью фабрики SSL-сокетов по умолчанию.
abstract SSLSession negotiate(SSLSocketFactory factory)
Согласовывает сеанс TLS с помощью фабрики SSL-сокетов.
abstract void setEnabledCipherSuites(String[] suites)
Переопределяет список наборов шифров, разрешённых для использования в TLS-соединении по умолчанию.
abstract void setHostnameVerifier(HostnameVerifier verifier)
Задаёт средство проверки имени узла, используемое negotiate() после завершения TLS-рукопожатия, если стандартная проверка имени узла завершилась неудачно.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного интервала реального времени.

Подробное описание полей

OID

public static final String OID
Назначенный идентификатор объекта расширенного ответа StartTLS: 1.3.6.1.4.1.1466.20037.
См. также:
  • Значения констант полей

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

StartTlsResponse

protected StartTlsResponse()
Создаёт расширенный ответ StartTLS. Конкретный подкласс должен иметь общедоступный конструктор без аргументов.

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

getID

public String getID()
Возвращает строку идентификатора объекта ответа StartTLS.
Определено в:
getID в интерфейсе ExtendedResponse
Возвращает:
Строку идентификатора объекта «1.3.6.1.4.1.1466.20037».

getEncodedValue

public byte[] getEncodedValue()
Возвращает значение ответа StartTLS в кодировке ASN.1 BER. Поскольку для ответа не определено значение, всегда возвращается null.
Определено в:
getEncodedValue в интерфейсе ExtendedResponse
Возвращает:
Значение null.

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
Переопределяет список наборов шифров, разрешённых для использования в TLS-соединении по умолчанию. Наборы шифров должны быть предварительно перечислены методом SSLSocketFactory.getSupportedCipherSuites() как поддерживаемые. Даже если набор включён, он может не использоваться, поскольку узел-партнёр его не поддерживает или отсутствуют необходимые сертификаты (и закрытые ключи).
Параметры:
suites — непустой список имён всех наборов шифров, которые необходимо включить.
См. также:
  • negotiate()

setHostnameVerifier

public abstract void setHostnameVerifier(HostnameVerifier verifier)
Задаёт средство проверки имени узла, используемое negotiate() после завершения TLS-рукопожатия, если стандартная проверка имени узла завершилась неудачно. Для того чтобы setHostnameVerifier() оказал действие, его необходимо вызвать до вызова negotiate(). Если вызвать его после negotiate(), этот метод ничего не делает.
Параметры:
verifier — непустой обработчик обратного вызова для проверки имени узла.
См. также:
  • negotiate()

negotiate

public abstract SSLSession negotiate() throws IOException
Согласовывает сеанс TLS с помощью фабрики SSL-сокетов по умолчанию.

Этот метод эквивалентен negotiate(null).

Возвращает:
Согласованный сеанс SSL
Выбрасывает:
IOException — если при установлении сеанса TLS произошла ошибка ввода-вывода.
См. также:
  • setEnabledCipherSuites(String[])
  • setHostnameVerifier(HostnameVerifier)

negotiate

public abstract SSLSession negotiate(SSLSocketFactory factory) throws IOException
Согласовывает сеанс TLS с помощью фабрики SSL-сокетов.

Создаёт SSL-сокет с помощью предоставленной фабрики SSL-сокетов и подключает его к существующему соединению. Выполняет TLS-рукопожатие и возвращает информацию о согласованном сеансе.

Если наборы шифров заданы с помощью setEnabledCipherSuites, они включаются до начала TLS-рукопожатия.

Проверка имени узла выполняется после завершения TLS-рукопожатия. При стандартной проверке имя узла сервера сопоставляется с информацией об имени узла в сертификате сервера. Если проверка завершается неудачно и обработчик обратного вызова не задан с помощью setHostnameVerifier, согласование завершается неудачно. Если проверка завершается неудачно, но обработчик обратного вызова задан с помощью setHostnameVerifier, он определяет, будет ли согласование успешным.

При возникновении ошибки SSL-сокет закрывается и выбрасывается IOException. Базовое соединение остаётся целым.

Параметры:
factory — возможно, null; фабрика SSL-сокетов, которую следует использовать. Если значение равно null, используется фабрика SSL-сокетов по умолчанию.
Возвращает:
Согласованный сеанс SSL
Выбрасывает:
IOException — если при установлении сеанса TLS произошла ошибка ввода-вывода.
См. также:
  • setEnabledCipherSuites(String[])
  • setHostnameVerifier(HostnameVerifier)

close

public abstract void close() throws IOException
Корректно закрывает TLS-соединение и возвращается к базовому соединению.
Выбрасывает:
IOException — если при закрытии TLS-соединения произошла ошибка ввода-вывода

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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