Интерфейс 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 |
Константа, содержащая имя свойства среды для указания списка фабрик управляющих элементов, которые нужно использовать. |
Поля, объявленные в интерфейсе javax.naming.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
Поля, объявленные в интерфейсе 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, контекст инициализируется без управляющих элементов запроса. - Возвращает:
- Не null экземпляр
LdapContext. - Исключения:
-
NamingException- Если при создании нового экземпляра произошла ошибка. - См. также:
reconnect
void reconnect(Control[] connCtls) throws NamingException
Этот метод является способом явного инициирования операции "bind" LDAP. Например, вы можете использовать этот метод для установки управляющих элементов запроса для операции "bind" LDAP или для явного подключения к серверу, чтобы получить управляющие элементы ответа, возвращённые операцией "bind" LDAP.
Этот метод устанавливает управляющие элементы запроса подключения этого контекста, чтобы они стали новыми управляющими элементами запроса подключения. Управляющие элементы запроса контекста этого контекста не изменяются. После вызова этого метода любые последующие неявные повторные подключения будут выполняться с использованием connCtls. connCtls также используются в качестве управляющих элементов запроса подключения для новых экземпляров контекста, полученных из этого контекста. Эти управляющие элементы запроса подключения не затрагиваются setRequestControls().
Реализаторы поставщиков услуг должны прочитать раздел "Поставщик услуг" в описании класса для получения подробностей реализации.
- Параметры:
-
connCtls- Возможно null, управляющие элементы. Если null, управляющие элементы не используются. - Исключения:
-
NamingException- Если во время повторного подключения произошла ошибка. - См. также:
getConnectControls
Control[] getConnectControls() throws NamingException
- Возвращает:
- Возможный массив элементов управления. 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 означает, что управляющие элементы запроса не были установлены для этого контекста.
- Исключения:
-
NamingException- Если при получении управляющих элементов запроса произошла ошибка. - См. также:
getResponseControls
Control[] getResponseControls() throws NamingException
Эти управляющие элементы ответа могут быть сгенерированы успешной или неудачной операцией.
При вызове метода контекста, который может вернуть управляющие элементы ответа, управляющие элементы ответа от предыдущего вызова метода очищаются. getResponseControls() возвращает все управляющие элементы ответа, сгенерированные операциями LDAP, используемыми методом контекста, в порядке их получения от сервера LDAP. Вызов getResponseControls() не очищает управляющие элементы ответа. Вы можете вызывать его многократно (и получать те же элементы управления), пока не будет вызван следующий метод контекста, который может вернуть элементы управления.
- Возвращает:
- Возможный массив элементов управления. Если 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://download.java.net/java/early_access/jdk24/docs/api/java.naming/javax/naming/ldap/LdapContext.html