Класс StartTlsResponse
- Все реализуемые интерфейсы:
Serializable, ExtendedResponse
public abstract class StartTlsResponse extends Object implements ExtendedResponse
Расширенные запрос и ответ 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
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
OID |
Назначенный идентификатор объекта расширенного ответа StartTLS — 1.3.6.1.4.1.1466.20037. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт расширенный ответ StartTLS. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
close() |
Корректно закрывает TLS-соединение и возвращается к базовому соединению. |
byte[] |
getEncodedValue() |
Возвращает значение ответа StartTLS в кодировке ASN.1 BER. |
String |
getID() |
Возвращает строку идентификатора объекта ответа StartTLS. |
abstract SSLSession |
negotiate() |
Согласовывает сеанс TLS с использованием фабрики SSL-сокетов по умолчанию. |
abstract SSLSession |
negotiate |
Согласовывает сеанс TLS с использованием фабрики SSL-сокетов. |
abstract void |
setEnabledCipherSuites |
Переопределяет список наборов шифров, разрешённых для использования в TLS-соединении по умолчанию. |
abstract void |
setHostnameVerifier |
Задаёт средство проверки имени хоста, используемое negotiate() после завершения рукопожатия TLS, если проверка имени хоста по умолчанию завершилась неудачно. |
Подробное описание полей
OID
public static final String OID
- См. также:
Подробное описание конструкторов
StartTlsResponse
protected StartTlsResponse()
Подробное описание методов
getID
public String getID()
- Определено в:
-
getIDв интерфейсеExtendedResponse - Возвращает:
- Строку идентификатора объекта «1.3.6.1.4.1.1466.20037».
getEncodedValue
public byte[] getEncodedValue()
- Определено в:
-
getEncodedValueв интерфейсеExtendedResponse - Возвращает:
- Значение null.
setEnabledCipherSuites
public abstract void setEnabledCipherSuites(String[] suites)
SSLSocketFactory.getSupportedCipherSuites() как поддерживаемые. Даже если набор включён, он может не использоваться, поскольку узел-партнёр его не поддерживает или отсутствуют необходимые сертификаты (и закрытые ключи).- Параметры:
-
suites— список имён всех наборов шифров, которые необходимо включить; значение не должно быть null. - См. также:
setHostnameVerifier
public abstract void setHostnameVerifier(HostnameVerifier verifier)
negotiate() после завершения рукопожатия TLS, если проверка имени хоста по умолчанию завершилась неудачно. Для получения эффекта setHostnameVerifier() необходимо вызвать до вызова negotiate(). Если вызвать этот метод после negotiate(), он ничего не сделает.- Параметры:
-
verifier— обратный вызов средства проверки имени хоста; значение не должно быть null. - См. также:
negotiate
public abstract SSLSession negotiate() throws IOException
Этот метод эквивалентен negotiate(null).
- Возвращает:
- Согласованный сеанс SSL
- Выбрасывает:
-
IOException— если при установлении сеанса TLS произошла ошибка ввода-вывода. - См. также:
negotiate
public abstract SSLSession negotiate(SSLSocketFactory factory) throws IOException
Создаёт SSL-сокет с помощью указанной фабрики SSL-сокетов и подключает его к существующему соединению. Выполняет рукопожатие TLS и возвращает сведения о согласованном сеансе.
Если наборы шифров заданы с помощью setEnabledCipherSuites, они включаются до начала рукопожатия TLS.
Проверка имени хоста выполняется после завершения рукопожатия TLS. При проверке имени хоста по умолчанию имя хоста сервера сопоставляется со сведениями об имени хоста в сертификате сервера. Если проверка завершается неудачно и обратный вызов не задан с помощью setHostnameVerifier, согласование завершается неудачно. Если проверка завершается неудачно, но обратный вызов задан с помощью setHostnameVerifier, он используется для определения результата согласования.
При возникновении ошибки SSL-сокет закрывается, а метод выбрасывает IOException. Базовое соединение остаётся активным.
- Параметры:
-
factory— фабрика SSL-сокетов, которая может иметь значение null. Если значение null, используется фабрика SSL-сокетов по умолчанию. - Возвращает:
- Согласованный сеанс SSL
- Выбрасывает:
-
IOException— если при установлении сеанса TLS произошла ошибка ввода-вывода. - См. также:
close
public abstract void close() throws IOException
- Выбрасывает:
-
IOException— если при закрытии TLS-соединения произошла ошибка ввода-вывода
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/ldap/StartTlsResponse.html