Spec-Zone.ru › OpenJDK 25

Интерфейс ExtendedRequest

Все суперинтерфейсы:
Serializable
Все известные реализующие классы:
StartTlsRequest
public interface ExtendedRequest extends Serializable
Этот интерфейс представляет запрос расширенной операции LDAPv3, определённый в RFC 2251.
     ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
              requestName      [0] LDAPOID,
              requestValue     [1] OCTET STRING OPTIONAL }
 
Он состоит из строки идентификатора объекта и необязательного значения в кодировке ASN.1 BER.

Методы этого класса используются поставщиком услуг для формирования битов, отправляемых на сервер LDAP. Обычно приложения работают только с классами, реализующими этот интерфейс, и передают им всю информацию, необходимую для конкретного запроса расширенной операции. Затем такой класс передаётся в качестве аргумента методу LdapContext.extendedOperation() для выполнения расширенной операции LDAPv3.

Например, предположим, что сервер LDAP поддерживает расширенную операцию «получить время». Для неё будут предоставлены классы GetTimeRequest и GetTimeResponse:

 public class GetTimeRequest implements ExtendedRequest {
     public GetTimeRequest() {... };
     public ExtendedResponse createExtendedResponse(String id,
         byte[] berValue, int offset, int length)
         throws NamingException {
         return new GetTimeResponse(id, berValue, offset, length);
     }
     ...
 }
 public class GetTimeResponse implements ExtendedResponse {
     long time;
     public GetTimeResponse(String id, byte[] berValue, int offset,
         int length) throws NamingException {
         time =      ... // decode berValue to get time
     }
     public java.util.Date getDate() { return new java.util.Date(time) };
     public long getTime() { return time };
     ...
 }
Затем программа использует эти классы следующим образом:
 GetTimeResponse resp =
     (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest());
 long time = resp.getTime();
Начиная с версии:
1.3
См. также:
  • ExtendedResponse
  • LdapContext.extendedOperation(ExtendedRequest)

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

Модификатор и тип Метод Описание
ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length)
Создаёт объект ответа, соответствующий этому запросу.
byte[] getEncodedValue()
Возвращает значение запроса расширенной операции LDAP в кодировке ASN.1 BER.
String getID()
Возвращает идентификатор объекта запроса.

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

getID

String getID()
Возвращает идентификатор объекта запроса.
Возвращает:
Строка идентификатора объекта, не равная null и представляющая компонент LDAP ExtendedRequest.requestName.

getEncodedValue

byte[] getEncodedValue()
Возвращает значение запроса расширенной операции LDAP в кодировке ASN.1 BER. Если значение отсутствует, возвращается null. Результат представляет собой необработанные байты BER, включая тег и длину значения запроса. Он не включает OID запроса. Этот метод вызывается поставщиком услуг для получения битов, которые нужно включить в расширенную операцию, отправляемую на сервер LDAP.
Возвращает:
Возможно, null; массив байтов, представляющий содержимое компонента LDAP ExtendedRequest.requestValue в кодировке ASN.1 BER.
Выбрасывает:
IllegalStateException — если закодированное значение невозможно получить, поскольку запрос содержит недостаточные или недопустимые данные/состояние.

createExtendedResponse

ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
Создаёт объект ответа, соответствующий этому запросу.

После отправки поставщиком услуг запроса расширенной операции на сервер LDAP сервер вернёт ответ. Если операция завершилась неудачно, поставщик выбросит NamingException. Если операция выполнена успешно, поставщик вызовет этот метод, используя данные, полученные в ответе. Этот метод должен вернуть класс, реализующий интерфейс ExtendedResponse и подходящий для запроса расширенной операции.

Например, класс запроса Start TLS должен уметь обрабатывать ответ расширенной операции Start TLS. Для этого он создаёт класс, реализующий ExtendedResponse.

Параметры:
id — возможно, null; идентификатор объекта элемента управления ответом.
berValue — возможно, null; значение элемента управления ответом в кодировке ASN.1 BER. Это необработанные байты BER, включая тег и длину значения ответа. Оно не включает OID ответа.
offset — начальная позиция байтов, используемых из berValue.
length — количество байтов, используемых из berValue.
Возвращает:
Объект, не равный null.
Выбрасывает:
NamingException — если не удалось создать расширенный ответ из-за ошибки.
См. также:
  • ExtendedResponse

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/ldap/ExtendedRequest.html

Spec-Zone.ru

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