Интерфейс 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[], возвращаемый любым методом, является неизменяемым и не может быть изменен ни вызывающей стороной, ни поставщиком услуг.Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
CONTROL_FACTORIES |
Константа, содержащая имя свойства среды для указания списка фабрик управляющих элементов, которые необходимо использовать. |
Поля, объявленные в интерфейсе javax.naming.Context
APPLET, 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
Поля, объявленные в интерфейсе javax.naming.directory.DirContext
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ExtendedResponse |
extendedOperation |
Выполнение расширенной операции. |
Control[] |
getConnectControls() |
Получение управляющих элементов запроса соединения, действующих для данного контекста. |
Control[] |
getRequestControls() |
Получение управляющих элементов запроса, действующих для данного контекста. |
Control[] |
getResponseControls() |
Получение управляющих элементов ответа, сгенерированных в результате последнего вызова метода для данного контекста. |
LdapContext |
newInstance |
Создание нового экземпляра этого контекста, инициализированного с использованием управляющих элементов запроса. |
void |
reconnect |
Повторное подключение к серверу LDAP с использованием предоставленных управляющих элементов и среды данного контекста. |
void |
setRequestControls |
Установка управляющих элементов запроса для методов, которые впоследствии вызываются для данного контекста. |
Методы, объявленные в интерфейсе javax.naming.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
Методы, объявленные в интерфейсе javax.naming.directory.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
Этот метод является способом явного инициирования операции "bind" LDAP. Например, вы можете использовать этот метод для установки управляющих элементов запроса для операции LDAP "bind" или для явного подключения к серверу, чтобы получить управляющие элементы ответа, возвращаемые операцией LDAP "bind".
Этот метод устанавливает управляющие элементы запроса соединения этого контекста в качестве новых управляющих элементов запроса соединения. Управляющие элементы запроса контекста этого контекста не затрагиваются. После вызова этого метода все последующие неявные переподключения будут выполняться с использованием 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, 2021, 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/17/docs/api/java.naming/javax/naming/ldap/LdapContext.html