Spec-Zone .ru
спецификации, руководства, описания, API
|
См.: Описание
Интерфейс | Описание |
---|---|
Управление |
Этот интерфейс представляет управление LDAPv3 как определено в
|
ExtendedRequest |
Этот интерфейс представляет LDAPv3 расширенный запрос работы как определено в
|
ExtendedResponse |
Этот интерфейс представляет LDAP расширенный ответ работы как определено в
|
HasControls |
Этот интерфейс для того, чтобы возвратить средства управления с объектами, возвращенными в NamingEnumerations.
|
LdapContext |
Этот интерфейс представляет контекст, в котором можно выполнить операции со средствами управления LDAPv3-стиля и выполнить LDAPv3-стиль расширенные операции.
|
UnsolicitedNotification |
Этот интерфейс представляет незапрашиваемое уведомление как определено в
|
UnsolicitedNotificationListener |
Этот интерфейс для того, чтобы обработать UnsolicitedNotificationEvent.
|
Класс | Описание |
---|---|
BasicControl |
Этот class обеспечивает основную реализацию интерфейса Control.
|
ControlFactory |
Этот абстрактный class представляет фабрику для того, чтобы создать средства управления LDAPv3.
|
InitialLdapContext |
Этот class является запускающимся контекстом для того, чтобы выполнить LDAPv3-стиль расширенные операции и средства управления.
|
LdapName |
Этот class представляет отличительное имя как определено
|
ManageReferralControl |
Запросы, которым отсылка и другой специальный LDAP возражают управляться как нормальные объекты LDAP.
|
PagedResultsControl |
Запросы, что результаты работы поиска быть возвращенным сервером LDAP в пакетах указанного размера.
|
PagedResultsResponseControl |
Указывает на конец пакета результатов поиска.
|
Rdn |
Этот class представляет относительное отличительное имя, или RDN, который является компонентом отличительного имени как определено
|
SortControl |
Запросы, что результаты работы поиска быть сортированным сервером LDAP прежде, чем быть возвращенным.
|
SortKey |
Ключ сортировки и его связанные параметры вида.
|
SortResponseControl |
Указывает, был ли требуемый вид результатов поиска успешен или нет.
|
StartTlsRequest |
Этот class реализует LDAPv3 Расширенный Запрос на StartTLS как определено в
|
StartTlsResponse |
Этот class реализует LDAPv3 Расширенный Ответ для StartTLS как определено в
|
UnsolicitedNotificationEvent |
Этот class представляет событие, запущенное в ответ на незапрашиваемое уведомление, отправленное сервером LDAP.
|
Исключение | Описание |
---|---|
LdapReferralException |
Этот абстрактный class используется, чтобы представить исключение отсылки LDAP.
|
Этот пакет расширяет операции каталога Именования Java и Каталога InterfaceTM (JNDI). JNDI обеспечивает именование и функциональность каталога к приложениям, записанным в языке программирования Java. Это разрабатывается, чтобы быть независимым от любого определенного именования или реализации службы каталогов. Таким образом ко множеству служб - новый, появление, и уже развернутые - можно получить доступ в распространенном способе.
Этот пакет для приложений и поставщиков услуг, которые имеют дело с LDAPv3 расширенные операции и средства управления, как определено
Этот пакет определяет интерфейс ExtendedRequest, чтобы представить параметр расширенной работе, и интерфейс ExtendedResponse, чтобы представить результат расширенной работы. Расширенный ответ всегда соединяется с расширенным запросом, но не обязательно наоборот. Таким образом, у Вас может быть расширенный запрос, у которого нет никакого соответствующего расширенного ответа.
Приложение обычно не имеет дело непосредственно с этими интерфейсами. Вместо этого это имеет дело с классами, которые реализуют эти интерфейсы. Приложение получает эти классы или как часть репертуара расширенных операций, стандартизированных через IETF, или от поставщиков каталога для специфичных для поставщика расширенных операций. У классов запроса должны быть конструкторы, которые принимают параметры безопасным с точки зрения типов и удобным для пользователя способом, в то время как у классов ответа должны быть методы доступа для того, чтобы получить данные ответа безопасным с точки зрения типов и удобным для пользователя способом. Внутренне, классы запроса/ответа имеют дело с кодированием и декодированием значений BER.
Например, предположите, что сервер LDAP поддерживает, "получают время" расширенная работа. Это предоставило бы классы, такие как GetTimeRequest и GetTimeResponse, так, чтобы приложения могли использовать эту функцию. Приложение использовало бы эти классы следующим образом:
GetTimeResponse resp = (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest()); long time = resp.getTime();
GetTimeRequest и классы GetTimeResponse могли бы быть определены следующим образом:
public class GetTimeRequest implements ExtendedRequest { // User-friendly constructor public GetTimeRequest() { }; // Methods used by service providers public String getID() { return GETTIME_REQ_OID; } public byte[] getEncodedValue() { return null; // no value needed for get time request } 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; // called by GetTimeRequest.createExtendedResponse() public GetTimeResponse(String id, byte[] berValue, int offset, int length) throws NamingException { // check validity of id long time = ... // decode berValue to get time } // Type-safe and User-friendly methods public java.util.Date getDate() { return new java.util.Date(time); } public long getTime() { return time; } // Low level methods public byte[] getEncodedValue() { return // berValue saved; } public String getID() { return GETTIME_RESP_OID; } }
Приложение обычно не имеет дело непосредственно с этим интерфейсом. Вместо этого это имеет дело с классами, которые реализуют этот интерфейс. Приложение получает классы управления или как часть репертуара средств управления, стандартизированных через IETF, или от поставщиков каталога для специфичных для поставщика средств управления. У классов управления запросом должны быть конструкторы, которые принимают параметры безопасным с точки зрения типов и удобным для пользователя способом, в то время как у классов управления ответом должны быть методы доступа для того, чтобы получить данные ответа безопасным с точки зрения типов и удобным для пользователя способом. Внутренне, классы управления запросом/ответом имеют дело с кодированием и декодированием значений BER.
Например, предположите, что сервер LDAP поддерживает "подписанные результаты" управление запросом, которое когда отправлено с запросом, просит сервер в цифровой форме подписывать результаты работы. Это предоставило бы class SignedResultsControl так, чтобы приложения могли использовать эту функцию. Приложение использовало бы этот class следующим образом:
SignedResultsControl class мог бы быть определен следующим образом:Control[] reqCtls = new Control[] {new SignedResultsControl(Control.CRITICAL)}; ectx.setRequestControls(reqCtls); NamingEnumeration enum = ectx.search(...);
public class SignedResultsControl implements Control { // User-friendly constructor public SignedResultsControl(boolean criticality) { // assemble the components of the request control }; // Methods used by service providers public String getID() { return // control's object identifier } public byte[] getEncodedValue() { return // ASN.1 BER encoded control value } ... }
Когда поставщик услуг получает средства управления ответом, он использует ControlFactory class, чтобы произвести определенные классы, которые реализуют интерфейс Control.
Сервер LDAP может отослать средства управления ответом назад с работой LDAP и также с результатами перечисления, такими как возвращенные списком или искать работу. LdapContext обеспечивает метод (getResponseControls()) для того, чтобы он получил средства управления ответом, отправленные с работой LDAP, в то время как интерфейс HasControls используется, чтобы получить средства управления ответом, связанные с результатами перечисления.
Например, предположите, что сервер LDAP отсылает "управление" ID изменения назад в ответ на успешную модификацию. Это предоставило бы class ChangeIDControl так, чтобы приложение могло использовать эту функцию. Приложение выполнило бы обновление, и затем попыталось бы получить ID изменения.
The vendor might supply the following ChangeIDControl and VendorXControlFactory classes. The VendorXControlFactory will be used by the service provider when the provider receives response controls from the LDAP server.// Perform update Context ctx = ectx.createSubsubcontext("cn=newobj"); // Get response controls Control[] respCtls = ectx.getResponseControls(); if (respCtls != null) { // Find the one we want for (int i = 0; i < respCtls; i++) { if(respCtls[i] instanceof ChangeIDControl) { ChangeIDControl cctl = (ChangeIDControl)respCtls[i]; System.out.println(cctl.getChangeID()); } } }
public class ChangeIDControl implements Control { long id; // Constructor used by ControlFactory public ChangeIDControl(String OID, byte[] berVal) throws NamingException { // check validity of OID id = // extract change ID from berVal }; // Type-safe and User-friendly method public long getChangeID() { return id; } // Low-level methods public String getID() { return CHANGEID_OID; } public byte[] getEncodedValue() { return // original berVal } ... } public class VendorXControlFactory extends ControlFactory { public VendorXControlFactory () { } public Control getControlInstance(Control orig) throws NamingException { if (isOneOfMyControls(orig.getID())) { ... // determine which of ours it is and call its constructor return (new ChangeIDControl(orig.getID(), orig.getEncodedValue())); } return null; // not one of ours } }
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.
DRAFT ea-b92