Интерфейс LdapContext
- Все суперинтерфейсы:
Context, DirContext
- Все известные реализующие классы:
InitialLdapContext
public interface LdapContext extends DirContext
javax.naming.directory.DirContext. Сведения об использовании элементов управления
Этот интерфейс обеспечивает поддержку элементов управления LDAP v3. В общих чертах эта поддержка позволяет пользовательской программе задавать элементы управления запросов для операций LDAP, выполняемых при вызове пользовательской программой методовContext/DirContext, а также читать элементы управления ответов, полученные в результате операций LDAP. На уровне реализации разработчикам как пользовательской программы, так и поставщиков служб необходимо знать некоторые подробности, чтобы правильно использовать элементы управления запросов и ответов. Элементы управления запросов
Существует два типа элементов управления запросов:
- Элементы управления запросов, влияющие на создание подключения
- Элементы управления запросов, влияющие на методы контекста
Если не указано иное, термин «элементы управления запросов» обозначает элементы управления запросов контекста.
Элементы управления запросов контекста
Существует два способа задать элементы управления запросов экземпляра контекста:-
ldapContext.newInstance(reqCtls) -
ldapContext.setRequestControls(reqCtls)
ldapContext — экземпляр LdapContext. Указание null или пустого массива для reqCtls означает отсутствие элементов управления запросов. newInstance() создает новый экземпляр контекста, используя reqCtls, а setRequestControls() обновляет элементы управления запросов существующего экземпляра контекста, устанавливая их в reqCtls. В отличие от свойств окружения, элементы управления запросов экземпляра контекста не наследуются производными от него экземплярами контекста. Для производных экземпляров контекста null используются в качестве элементов управления запросов контекста. Необходимо явно задать элементы управления запросов производного экземпляра контекста с помощью setRequestControls().
Элементы управления запросов экземпляра контекста можно получить с помощью метода getRequestControls().
Элементы управления запросов подключения
Существует три способа задать элементы управления запросов подключения:-
new InitialLdapContext(env, connCtls) -
refException.getReferralContext(env, connCtls) -
ldapContext.reconnect(connCtls);
refException — экземпляр LdapReferralException, а ldapContext — экземпляр LdapContext. Указание null или пустого массива для connCtls означает отсутствие элементов управления запросов подключения. Как и свойства окружения, элементы управления запросов подключения контекста наследуются производными от него контекстами. Обычно элементы управления запросов подключения инициализируются с помощью конструктора InitialLdapContext или LdapReferralContext.getReferralContext(). Эти элементы управления запросов подключения наследуются контекстами, использующими одно и то же подключение, то есть контекстами, производными от исходного контекста или контекста перенаправления.
Используйте reconnect(), чтобы изменить элементы управления запросов подключения контекста. Вызов ldapContext.reconnect() влияет только на подключение, используемое ldapContext, и на любые новые экземпляры контекста, производные от ldapContext. Контексты, ранее использовавшие совместно с ldapContext одно и то же подключение, остаются без изменений. Иными словами, элементы управления запросов подключения контекста необходимо изменять явно; на них не влияют изменения элементов управления запросов подключения другого контекста.
Элементы управления запросов подключения экземпляра контекста можно получить с помощью метода getConnectControls().
Требования к поставщику службы
Поставщик службы поддерживает элементы управления запросов подключения и контекста следующим образом. Элементы управления запросов контекста должны быть связаны с каждым экземпляром контекста, а элементы управления запросов подключения — с каждым экземпляром подключения. Поставщик службы должен искать элементы управления запросов подключения в свойстве окружения "java.naming.ldap.control.connect" и передавать это свойство окружения создаваемым им экземплярам контекста.Элементы управления ответов
МетодLdapContext.getResponseControls() используется для получения элементов управления ответов, созданных операциями LDAP, выполненными в результате вызова операции Context/DirContext. Результат содержит все элементы управления ответов, созданные базовыми операциями LDAP, включая неявное повторное подключение. Чтобы получить только элементы управления ответов повторного подключения, используйте reconnect(), а затем getResponseControls(). Параметры
МассивControl[], переданный в качестве параметра любому методу, принадлежит вызывающему коду. Поставщик службы не изменяет массив и не сохраняет ссылку на него, хотя может сохранять ссылки на отдельные объекты Control в массиве. Массив Control[], возвращаемый любым методом, является неизменяемым и не может быть изменен впоследствии ни вызывающим кодом, ни поставщиком службы.- Начиная с версии:
- 1.3
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
CONTROL_FACTORIES |
Константа, содержащая имя свойства окружения, задающего список используемых фабрик элементов управления. |
Поля, объявленные в интерфейсе Context
AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
Поля, объявленные в интерфейсе DirContext
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ExtendedResponse |
extendedOperation |
Выполняет расширенную операцию. |
Control[] |
getConnectControls() |
Получает действующие для этого контекста элементы управления запросов подключения. |
Control[] |
getRequestControls() |
Получает действующие для этого контекста элементы управления запросов. |
Control[] |
getResponseControls() |
Получает элементы управления ответов, созданные в результате последнего вызванного для этого контекста метода. |
LdapContext |
newInstance |
Создает новый экземпляр этого контекста, инициализированный с использованием элементов управления запросов. |
void |
reconnect |
Повторно подключается к серверу LDAP, используя предоставленные элементы управления и окружение этого контекста. |
void |
setRequestControls |
Задает элементы управления запросов для последующих вызовов методов этого контекста. |
Методы, объявленные в интерфейсе Context
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
Методы, объявленные в интерфейсе DirContext
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
Подробное описание полей
CONTROL_FACTORIES
static final String CONTROL_FACTORIES
ControlFactory.getControlInstance(). Это свойство можно задать в окружении, системном свойстве или одном или нескольких файлах ресурсов. Значение этой константы — "java.naming.factory.control".
- См. также:
Подробное описание методов
extendedOperation
ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
- Параметры:
-
request— запрос, который необходимо выполнить; не должен быть null. - Возвращает:
- Возможно, null — ответ операции. Значение null означает, что операция не создала ответа.
- Исключения:
-
NamingException— если при выполнении расширенной операции произошла ошибка.
newInstance
LdapContext newInstance(Control[] requestControls) throws NamingException
Новый контекст имеет те же свойства окружения и элементы управления запросов подключения, что и этот контекст. Подробности см. в описании класса. Реализации также могут разрешать этому контексту и новому контексту совместно использовать одно сетевое подключение или другие ресурсы, если это не мешает независимой работе каждого из контекстов.
- Параметры:
-
requestControls— возможно, null; элементы управления запросов для нового контекста. Если значение равно null, контекст инициализируется без элементов управления запросов. - Возвращает:
- Экземпляр
LdapContext, который не равен null. - Исключения:
-
NamingException— если при создании нового экземпляра произошла ошибка. - См. также:
reconnect
void reconnect(Control[] connCtls) throws NamingException
Этот метод позволяет явно инициировать операцию LDAP «bind». Например, его можно использовать для задания элементов управления запросов операции LDAP «bind» или для явного подключения к серверу с целью получения элементов управления ответов, возвращаемых операцией LDAP «bind».
Этот метод задает connCtls этого контекста как новые элементы управления запросов подключения. Элементы управления запросов контекста не изменяются. После вызова этого метода все последующие неявные повторные подключения будут выполняться с использованием connCtls. connCtls также используются в качестве элементов управления запросов подключения для новых экземпляров контекста, производных от этого контекста. Эти элементы управления запросов подключения не изменяются методом setRequestControls().
Разработчикам поставщиков служб следует прочитать раздел «Поставщик службы» в описании класса, где приведены подробности реализации.
- Параметры:
-
connCtls— возможно, null; используемые элементы управления. Если значение равно null, элементы управления не используются. - Исключения:
-
NamingException— если при повторном подключении произошла ошибка. - См. также:
getConnectControls
Control[] getConnectControls() throws NamingException
- Возвращает:
- Возможно, null — массив элементов управления. Значение null означает, что для этого контекста не заданы элементы управления подключения.
- Исключения:
-
NamingException— если при получении элементов управления запросов произошла ошибка.
setRequestControls
void setRequestControls(Control[] requestControls) throws NamingException
Этот метод удаляет все ранее заданные элементы управления запросов и добавляет requestControls для использования последующими вызовами методов этого контекста. Данный метод не влияет на элементы управления запросов подключения этого контекста.
Обратите внимание, что requestControls будут действовать до следующего вызова setRequestControls(). Если вы больше не хотите, чтобы они влияли на методы контекста, необходимо явно вызвать setRequestControls(), указав null или пустой массив, чтобы очистить элементы управления. Чтобы проверить, какие элементы управления запросов действуют для этого контекста, используйте getRequestControls().
- Параметры:
-
requestControls— возможно, null; используемые элементы управления. Если значение равно null, элементы управления не используются. - Исключения:
-
NamingException— если при задании элементов управления запросов произошла ошибка. - См. также:
getRequestControls
Control[] getRequestControls() throws NamingException
- Возвращает:
- Возможно, null — массив элементов управления. Значение null означает, что для этого контекста не заданы элементы управления запросов.
- Исключения:
-
NamingException— если при получении элементов управления запросов произошла ошибка. - См. также:
getResponseControls
Control[] getResponseControls() throws NamingException
Эти элементы управления ответов могли быть созданы в результате успешной или неудачной операции.
При вызове метода контекста, который может возвращать элементы управления ответов, элементы управления ответов предыдущего вызова метода очищаются. getResponseControls() возвращает все элементы управления ответов, созданные операциями LDAP, использованными методом контекста, в том порядке, в котором они были получены от сервера LDAP. Вызов getResponseControls() не очищает элементы управления ответов. Его можно вызывать многократно (и получать те же элементы управления), пока не будет вызван следующий метод контекста, который может возвращать элементы управления.
- Возвращает:
- Возможно, null — массив элементов управления. Если значение равно null, последний вызванный для этого контекста метод не создал элементов управления.
- Исключения:
-
NamingException— если при получении элементов управления ответов произошла ошибка.
© 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/LdapContext.html