Класс StartTlsResponse
- java.lang.Object
-
- javax.naming.ldap.StartTlsResponse
- Все реализованные интерфейсы:
-
Serializable,ExtendedResponse
public abstract class StartTlsResponse extends Object implements ExtendedResponse
Этот класс реализует расширенный ответ LDAPv3 для StartTLS, как определено в Протоколе доступа к лёгким каталогам (v3): Расширение для безопасности транспортного уровня. Идентификатор объекта для StartTLS - 1.3.6.1.4.1.1466.20037, и значение расширенного ответа не определено.
Расширенный запрос и ответ Start TLS используются для установления 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 String |
OID |
Назначенный идентификатор объекта расширенного ответа StartTLS - 1.3.6.1.4.1.1466.20037. |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
StartTlsResponse() |
Создаёт расширенный ответ StartTLS. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
close() |
Закрывает TLS-соединение и возвращается к базовому соединению. |
byte[] |
getEncodedValue() |
Извлекает закодированное в ASN.1 BER значение ответа StartTLS. |
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) |
Устанавливает верификатор имени хоста, используемый |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Поля
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()
Извлекает закодированное в ASN.1 BER значение ответа StartTLS. Так как ответ не имеет определённого значения, всегда возвращается 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).
- Возвращает:
- Переговорённую TLS-сессию
- Выбрасывает:
-
IOException- Если при установлении TLS-сессии произошла ошибка IO. - См. также:
-
setEnabledCipherSuites(java.lang.String[]),setHostnameVerifier(javax.net.ssl.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-сессии произошла ошибка IO. - См. также:
-
setEnabledCipherSuites(java.lang.String[]),setHostnameVerifier(javax.net.ssl.HostnameVerifier)
close
public abstract void close()
throws IOException
Закрывает TLS-соединение и возвращается к базовому соединению.
- Выбрасывает:
-
IOException- Если при закрытии TLS-соединения произошла ошибка IO
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.naming/javax/naming/ldap/StartTlsResponse.html