Spec-Zone.ru › OpenJDK 24

Интерфейс 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(javax.naming.ldap.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, представляющий закодированное в ASN.1 BER содержимое компонента LDAP ExtendedRequest.requestValue.
Исключение:
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 США.
Все права защищены. Использование регулируется лицензионными условиями и политикой перераспределения документации.
ЭСКИЗ 24-ea+36-Debian-1

© 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://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/ldap/ExtendedRequest.html

Spec-Zone.ru

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