Spec-Zone.ru › OpenJDK 8

Интерфейс 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()

Возвращает закодированное значение ASN.1 BER запроса расширенной операции LDAP.

String getID()

Возвращает идентификатор объекта запроса.

Методы

getID

String getID()

Возвращает идентификатор объекта запроса.

Возвращает:
Строку идентификатора объекта, представляющую компонент LDAP ExtendedRequest.requestName. Она не может быть null.

getEncodedValue

byte[] getEncodedValue()

Возвращает закодированное значение ASN.1 BER запроса расширенной операции LDAP. Возвращает null, если значение отсутствует. Результатом является массив байтов BER, включая тег и длину значения запроса. Он не включает OID запроса. Этот метод вызывается поставщиком сервиса для получения битов, которые будут отправлены на сервер LDAP в рамках расширенной операции.

Возвращает:
Возможный массив байтов, представляющий закодированное значение ASN.1 BER содержимого компонента LDAP ExtendedRequest.requestValue. Может быть null.
Исключение:
IllegalStateException - Если закодированное значение не может быть получено из-за недостаточности или некорректности данных/состояния запроса.

createExtendedResponse

ExtendedResponse createExtendedResponse(String id,
                                        byte[] berValue,
                                        int offset,
                                        int length)
                                 throws NamingException

Создаёт объект ответа, соответствующий этому запросу.

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

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

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

© 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.

Spec-Zone.ru

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