From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.
---
sdk/src/org/opends/sdk/requests/Requests.java | 600 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 375 insertions(+), 225 deletions(-)
diff --git a/sdk/src/org/opends/sdk/requests/Requests.java b/sdk/src/org/opends/sdk/requests/Requests.java
index 66f9705..027b1eb 100644
--- a/sdk/src/org/opends/sdk/requests/Requests.java
+++ b/sdk/src/org/opends/sdk/requests/Requests.java
@@ -29,7 +29,10 @@
-import static com.sun.opends.sdk.messages.Messages.*;
+import static com.sun.opends.sdk.messages.Messages.WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE;
+
+import javax.net.ssl.SSLContext;
+import javax.security.auth.Subject;
import org.opends.sdk.*;
import org.opends.sdk.ldif.ChangeRecord;
@@ -40,8 +43,7 @@
/**
- * This class contains various methods for creating and manipulating
- * requests.
+ * This class contains various methods for creating and manipulating requests.
* <p>
* TODO: search request from LDAP URL.
* <p>
@@ -61,7 +63,7 @@
* The message ID of the request to be abandoned.
* @return The new abandon request.
*/
- public static AbandonRequest newAbandonRequest(int messageID)
+ public static AbandonRequest newAbandonRequest(final int messageID)
{
return new AbandonRequestImpl(messageID);
}
@@ -77,21 +79,20 @@
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static AddRequest newAddRequest(DN name)
+ public static AddRequest newAddRequest(final DN name)
throws NullPointerException
{
- final Entry entry = new SortedEntry().setName(name);
+ final Entry entry = new LinkedHashMapEntry().setName(name);
return new AddRequestImpl(entry);
}
/**
- * Creates a new add request backed by the provided entry.
- * Modifications made to {@code entry} will be reflected in the
- * returned add request. The returned add request supports updates to
- * its list of controls, as well as updates to the name and attributes
- * if the underlying entry allows.
+ * Creates a new add request backed by the provided entry. Modifications made
+ * to {@code entry} will be reflected in the returned add request. The
+ * returned add request supports updates to its list of controls, as well as
+ * updates to the name and attributes if the underlying entry allows.
*
* @param entry
* The entry to be added.
@@ -99,7 +100,7 @@
* @throws NullPointerException
* If {@code entry} was {@code null} .
*/
- public static AddRequest newAddRequest(Entry entry)
+ public static AddRequest newAddRequest(final Entry entry)
throws NullPointerException
{
Validator.ensureNotNull(entry);
@@ -109,46 +110,45 @@
/**
- * Creates a new add request using the provided distinguished name
- * decoded using the default schema.
+ * Creates a new add request using the provided distinguished name decoded
+ * using the default schema.
*
* @param name
* The distinguished name of the entry to be added.
* @return The new add request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema.
+ * If {@code name} could not be decoded using the default schema.
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static AddRequest newAddRequest(String name)
+ public static AddRequest newAddRequest(final String name)
throws LocalizedIllegalArgumentException, NullPointerException
{
- final Entry entry = new SortedEntry().setName(name);
+ final Entry entry = new LinkedHashMapEntry().setName(name);
return new AddRequestImpl(entry);
}
/**
- * Creates a new add request using the provided lines of LDIF decoded
- * using the default schema.
+ * Creates a new add request using the provided lines of LDIF decoded using
+ * the default schema.
*
* @param ldifLines
- * Lines of LDIF containing an LDIF add change record or an
- * LDIF entry record.
+ * Lines of LDIF containing an LDIF add change record or an LDIF
+ * entry record.
* @return The new add request.
* @throws LocalizedIllegalArgumentException
- * If {@code ldifLines} was empty, or contained invalid
- * LDIF, or could not be decoded using the default schema.
+ * If {@code ldifLines} was empty, or contained invalid LDIF, or
+ * could not be decoded using the default schema.
* @throws NullPointerException
* If {@code ldifLines} was {@code null} .
*/
- public static AddRequest newAddRequest(String... ldifLines)
+ public static AddRequest newAddRequest(final String... ldifLines)
throws LocalizedIllegalArgumentException, NullPointerException
{
// LDIF change record reader is tolerant to missing change types.
- ChangeRecord record = LDIFChangeRecordReader
+ final ChangeRecord record = LDIFChangeRecordReader
.valueOfLDIFChangeRecord(ldifLines);
if (record instanceof AddRequest)
@@ -158,7 +158,7 @@
else
{
// Wrong change type.
- LocalizableMessage message = WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE
+ final LocalizableMessage message = WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE
.get("add");
throw new LocalizedIllegalArgumentException(message);
}
@@ -167,21 +167,53 @@
/**
- * Creates a new change record (an add, delete, modify, or modify DN
- * request) using the provided lines of LDIF decoded using the default
- * schema.
+ * Creates a new anonymous SASL bind request having the provided trace string.
+ *
+ * @param traceString
+ * The trace information, which has no semantic value, and can be
+ * used by administrators in order to identify the user.
+ * @return The new anonymous SASL bind request.
+ * @throws NullPointerException
+ * If {@code traceString} was {@code null}.
+ */
+ public static AnonymousSASLBindRequest newAnonymousSASLBindRequest(
+ final String traceString) throws NullPointerException
+ {
+ return new AnonymousSASLBindRequestImpl(traceString);
+ }
+
+
+
+ /**
+ * Creates a new cancel extended request using the provided message ID.
+ *
+ * @param messageID
+ * The message ID of the request to be abandoned.
+ * @return The new cancel extended request.
+ */
+ public static CancelExtendedRequest newCancelExtendedRequest(
+ final int messageID)
+ {
+ return new CancelExtendedRequestImpl(messageID);
+ }
+
+
+
+ /**
+ * Creates a new change record (an add, delete, modify, or modify DN request)
+ * using the provided lines of LDIF decoded using the default schema.
*
* @param ldifLines
- * Lines of LDIF containing an LDIF change record or an LDIF
- * entry record.
+ * Lines of LDIF containing an LDIF change record or an LDIF entry
+ * record.
* @return The new change record.
* @throws LocalizedIllegalArgumentException
- * If {@code ldifLines} was empty, or contained invalid
- * LDIF, or could not be decoded using the default schema.
+ * If {@code ldifLines} was empty, or contained invalid LDIF, or
+ * could not be decoded using the default schema.
* @throws NullPointerException
* If {@code ldifLines} was {@code null} .
*/
- public static ChangeRecord newChangeRecord(String... ldifLines)
+ public static ChangeRecord newChangeRecord(final String... ldifLines)
throws LocalizedIllegalArgumentException, NullPointerException
{
// LDIF change record reader is tolerant to missing change types.
@@ -191,8 +223,8 @@
/**
- * Creates a new compare request using the provided distinguished
- * name, attribute name, and assertion value.
+ * Creates a new compare request using the provided distinguished name,
+ * attribute name, and assertion value.
*
* @param name
* The distinguished name of the entry to be compared.
@@ -205,25 +237,22 @@
* If {@code name}, {@code attributeDescription}, or {@code
* assertionValue} was {@code null}.
*/
- public static CompareRequest newCompareRequest(DN name,
- AttributeDescription attributeDescription,
- ByteString assertionValue) throws NullPointerException
+ public static CompareRequest newCompareRequest(final DN name,
+ final AttributeDescription attributeDescription,
+ final ByteString assertionValue) throws NullPointerException
{
Validator.ensureNotNull(name, attributeDescription, assertionValue);
- return new CompareRequestImpl(name, attributeDescription,
- assertionValue);
+ return new CompareRequestImpl(name, attributeDescription, assertionValue);
}
/**
- * Creates a new compare request using the provided distinguished
- * name, attribute name, and assertion value decoded using the default
- * schema.
+ * Creates a new compare request using the provided distinguished name,
+ * attribute name, and assertion value decoded using the default schema.
* <p>
- * If the assertion value is not an instance of {@code ByteString}
- * then it will be converted using the
- * {@link ByteString#valueOf(Object)} method.
+ * If the assertion value is not an instance of {@code ByteString} then it
+ * will be converted using the {@link ByteString#valueOf(Object)} method.
*
* @param name
* The distinguished name of the entry to be compared.
@@ -233,20 +262,44 @@
* The assertion value to be compared.
* @return The new compare request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} or {@code attributeDescription} could not
- * be decoded using the default schema.
+ * If {@code name} or {@code attributeDescription} could not be
+ * decoded using the default schema.
* @throws NullPointerException
* If {@code name}, {@code attributeDescription}, or {@code
* assertionValue} was {@code null}.
*/
- public static CompareRequest newCompareRequest(String name,
- String attributeDescription, Object assertionValue)
+ public static CompareRequest newCompareRequest(final String name,
+ final String attributeDescription, final Object assertionValue)
throws LocalizedIllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(name, attributeDescription, assertionValue);
- return new CompareRequestImpl(DN.valueOf(name),
- AttributeDescription.valueOf(attributeDescription), ByteString
- .valueOf(assertionValue));
+ return new CompareRequestImpl(DN.valueOf(name), AttributeDescription
+ .valueOf(attributeDescription), ByteString.valueOf(assertionValue));
+ }
+
+
+
+ /**
+ * Creates a new CRAM-MD5 SASL bind request having the provided authentication
+ * ID and password.
+ *
+ * @param authenticationID
+ * The authentication ID of the user. The authentication ID usually
+ * has the form "dn:" immediately followed by the distinguished name
+ * of the user, or "u:" followed by a user ID string, but other forms
+ * are permitted.
+ * @param password
+ * The password of the user that the client wishes to bind as. The
+ * password will be converted to a UTF-8 octet string.
+ * @return The new CRAM-MD5 SASL bind request.
+ * @throws NullPointerException
+ * If {@code authenticationID} or {@code password} was {@code null}.
+ */
+ public static CRAMMD5SASLBindRequest newCRAMMD5SASLBindRequest(
+ final String authenticationID, final ByteString password)
+ throws NullPointerException
+ {
+ return new CRAMMD5SASLBindRequestImpl(authenticationID, password);
}
@@ -260,7 +313,7 @@
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static DeleteRequest newDeleteRequest(DN name)
+ public static DeleteRequest newDeleteRequest(final DN name)
throws NullPointerException
{
Validator.ensureNotNull(name);
@@ -270,19 +323,18 @@
/**
- * Creates a new delete request using the provided distinguished name
- * decoded using the default schema.
+ * Creates a new delete request using the provided distinguished name decoded
+ * using the default schema.
*
* @param name
* The distinguished name of the entry to be deleted.
* @return The new delete request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema.
+ * If {@code name} could not be decoded using the default schema.
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static DeleteRequest newDeleteRequest(String name)
+ public static DeleteRequest newDeleteRequest(final String name)
throws LocalizedIllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(name);
@@ -292,50 +344,90 @@
/**
- * Creates a new generic bind request using an empty distinguished
- * name, authentication type, and authentication information.
+ * Creates a new DIGEST-MD5 SASL bind request having the provided
+ * authentication ID and password, but no realm or authorization ID.
+ *
+ * @param authenticationID
+ * The authentication ID of the user. The authentication ID usually
+ * has the form "dn:" immediately followed by the distinguished name
+ * of the user, or "u:" followed by a user ID string, but other forms
+ * are permitted.
+ * @param password
+ * The password of the user that the client wishes to bind as. The
+ * password will be converted to a UTF-8 octet string.
+ * @return The new DIGEST-MD5 SASL bind request.
+ * @throws NullPointerException
+ * If {@code authenticationID} or {@code password} was {@code null}.
+ */
+ public static DigestMD5SASLBindRequest newDigestMD5SASLBindRequest(
+ final String authenticationID, final ByteString password)
+ throws NullPointerException
+ {
+ return new DigestMD5SASLBindRequestImpl(authenticationID, password);
+ }
+
+
+
+ /**
+ * Creates a new External SASL bind request with no authorization ID.
+ *
+ * @return The new External SASL bind request.
+ */
+ public static ExternalSASLBindRequest newExternalSASLBindRequest()
+ {
+ return new ExternalSASLBindRequestImpl();
+ }
+
+
+
+ /**
+ * Creates a new generic bind request using an empty distinguished name,
+ * authentication type, and authentication information.
*
* @param authenticationType
- * The authentication mechanism identifier for this generic
- * bind request.
+ * The authentication mechanism identifier for this generic bind
+ * request.
* @param authenticationValue
- * The authentication information for this generic bind
- * request in a form defined by the authentication mechanism.
+ * The authentication information for this generic bind request in a
+ * form defined by the authentication mechanism.
* @return The new generic bind request.
* @throws NullPointerException
* If {@code authenticationValue} was {@code null}.
*/
public static GenericBindRequest newGenericBindRequest(
- byte authenticationType, ByteString authenticationValue)
+ final byte authenticationType, final ByteString authenticationValue)
throws NullPointerException
{
Validator.ensureNotNull(authenticationValue);
- return new GenericBindRequestImpl(DN.rootDN(), authenticationType,
+ return new GenericBindRequestImpl("", authenticationType,
authenticationValue);
}
/**
- * Creates a new generic bind request using the provided distinguished
- * name, authentication type, and authentication information.
+ * Creates a new generic bind request using the provided name, authentication
+ * type, and authentication information.
+ * <p>
+ * The LDAP protocol defines the Bind name to be a distinguished name, however
+ * some LDAP implementations have relaxed this constraint and allow other
+ * identities to be used, such as the user's email address.
*
* @param name
- * The distinguished name of the Directory object that the
- * client wishes to bind as (may be empty).
+ * The name of the Directory object that the client wishes to bind as
+ * (may be empty).
* @param authenticationType
- * The authentication mechanism identifier for this generic
- * bind request.
+ * The authentication mechanism identifier for this generic bind
+ * request.
* @param authenticationValue
- * The authentication information for this generic bind
- * request in a form defined by the authentication mechanism.
+ * The authentication information for this generic bind request in a
+ * form defined by the authentication mechanism.
* @return The new generic bind request.
* @throws NullPointerException
- * If {@code name} or {@code authenticationValue} was
- * {@code null}.
+ * If {@code name} or {@code authenticationValue} was {@code null}.
*/
- public static GenericBindRequest newGenericBindRequest(DN name,
- byte authenticationType, ByteString authenticationValue)
+ public static GenericBindRequest newGenericBindRequest(final String name,
+ final byte authenticationType, final ByteString authenticationValue)
throws NullPointerException
{
Validator.ensureNotNull(name, authenticationValue);
@@ -346,50 +438,18 @@
/**
- * Creates a new generic bind request using the provided distinguished
- * name, authentication type, and authentication information.
- *
- * @param name
- * The distinguished name of the Directory object that the
- * client wishes to bind as (may be empty).
- * @param authenticationType
- * The authentication mechanism identifier for this generic
- * bind request.
- * @param authenticationValue
- * The authentication information for this generic bind
- * request in a form defined by the authentication mechanism.
- * @return The new generic bind request.
- * @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema.
- * @throws NullPointerException
- * If {@code name} or {@code authenticationValue} was
- * {@code null}.
- */
- public static GenericBindRequest newGenericBindRequest(String name,
- byte authenticationType, ByteString authenticationValue)
- throws LocalizedIllegalArgumentException, NullPointerException
- {
- Validator.ensureNotNull(name, authenticationValue);
- return new GenericBindRequestImpl(DN.valueOf(name),
- authenticationType, authenticationValue);
- }
-
-
-
- /**
- * Creates a new generic extended request using the provided name and
- * no value.
+ * Creates a new generic extended request using the provided name and no
+ * value.
*
* @param requestName
- * The dotted-decimal representation of the unique OID
- * corresponding to this extended request.
+ * The dotted-decimal representation of the unique OID corresponding
+ * to this extended request.
* @return The new generic extended request.
* @throws NullPointerException
* If {@code requestName} was {@code null}.
*/
public static GenericExtendedRequest newGenericExtendedRequest(
- String requestName) throws NullPointerException
+ final String requestName) throws NullPointerException
{
Validator.ensureNotNull(requestName);
return new GenericExtendedRequestImpl(requestName, null);
@@ -398,22 +458,21 @@
/**
- * Creates a new generic extended request using the provided name and
- * optional value.
+ * Creates a new generic extended request using the provided name and optional
+ * value.
*
* @param requestName
- * The dotted-decimal representation of the unique OID
- * corresponding to this extended request.
+ * The dotted-decimal representation of the unique OID corresponding
+ * to this extended request.
* @param requestValue
- * The content of this generic extended request in a form
- * defined by the extended operation, or {@code null} if
- * there is no content.
+ * The content of this generic extended request in a form defined by
+ * the extended operation, or {@code null} if there is no content.
* @return The new generic extended request.
* @throws NullPointerException
* If {@code requestName} was {@code null}.
*/
public static GenericExtendedRequest newGenericExtendedRequest(
- String requestName, ByteString requestValue)
+ final String requestName, final ByteString requestValue)
throws NullPointerException
{
Validator.ensureNotNull(requestName);
@@ -423,8 +482,51 @@
/**
- * Creates a new modify DN request using the provided distinguished
- * name and new RDN.
+ * Creates a new GSSAPI SASL bind request having the provided authentication
+ * ID and password, but no realm, KDC address, or authorization ID.
+ *
+ * @param authenticationID
+ * The authentication ID of the user. The authentication ID usually
+ * has the form "dn:" immediately followed by the distinguished name
+ * of the user, or "u:" followed by a user ID string, but other forms
+ * are permitted.
+ * @param password
+ * The password of the user that the client wishes to bind as. The
+ * password will be converted to a UTF-8 octet string.
+ * @return The new GSSAPI SASL bind request.
+ * @throws NullPointerException
+ * If {@code authenticationID} or {@code password} was {@code null}.
+ */
+ public static GSSAPISASLBindRequest newGSSAPISASLBindRequest(
+ final String authenticationID, final ByteString password)
+ throws NullPointerException
+ {
+ return new GSSAPISASLBindRequestImpl(authenticationID, password);
+ }
+
+
+
+ /**
+ * Creates a new GSSAPI SASL bind request having the provided subject, but no
+ * authorization ID.
+ *
+ * @param subject
+ * The Kerberos subject of the user to be authenticated.
+ * @return The new GSSAPI SASL bind request.
+ * @throws NullPointerException
+ * If {@code subject} was {@code null}.
+ */
+ public static GSSAPISASLBindRequest newGSSAPISASLBindRequest(
+ final Subject subject) throws NullPointerException
+ {
+ return new GSSAPISASLBindRequestImpl(subject);
+ }
+
+
+
+ /**
+ * Creates a new modify DN request using the provided distinguished name and
+ * new RDN.
*
* @param name
* The distinguished name of the entry to be renamed.
@@ -434,8 +536,8 @@
* @throws NullPointerException
* If {@code name} or {@code newRDN} was {@code null}.
*/
- public static ModifyDNRequest newModifyDNRequest(DN name, RDN newRDN)
- throws NullPointerException
+ public static ModifyDNRequest newModifyDNRequest(final DN name,
+ final RDN newRDN) throws NullPointerException
{
Validator.ensureNotNull(name, newRDN);
return new ModifyDNRequestImpl(name, newRDN);
@@ -444,8 +546,8 @@
/**
- * Creates a new modify DN request using the provided distinguished
- * name and new RDN decoded using the default schema.
+ * Creates a new modify DN request using the provided distinguished name and
+ * new RDN decoded using the default schema.
*
* @param name
* The distinguished name of the entry to be renamed.
@@ -453,18 +555,17 @@
* The new RDN of the entry.
* @return The new modify DN request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} or {@code newRDN} could not be decoded
- * using the default schema.
+ * If {@code name} or {@code newRDN} could not be decoded using the
+ * default schema.
* @throws NullPointerException
* If {@code name} or {@code newRDN} was {@code null}.
*/
- public static ModifyDNRequest newModifyDNRequest(String name,
- String newRDN) throws LocalizedIllegalArgumentException,
+ public static ModifyDNRequest newModifyDNRequest(final String name,
+ final String newRDN) throws LocalizedIllegalArgumentException,
NullPointerException
{
Validator.ensureNotNull(name, newRDN);
- return new ModifyDNRequestImpl(DN.valueOf(name), RDN
- .valueOf(newRDN));
+ return new ModifyDNRequestImpl(DN.valueOf(name), RDN.valueOf(newRDN));
}
@@ -478,7 +579,7 @@
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static ModifyRequest newModifyRequest(DN name)
+ public static ModifyRequest newModifyRequest(final DN name)
throws NullPointerException
{
Validator.ensureNotNull(name);
@@ -488,19 +589,18 @@
/**
- * Creates a new modify request using the provided distinguished name
- * decoded using the default schema.
+ * Creates a new modify request using the provided distinguished name decoded
+ * using the default schema.
*
* @param name
* The distinguished name of the entry to be modified.
* @return The new modify request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema.
+ * If {@code name} could not be decoded using the default schema.
* @throws NullPointerException
* If {@code name} was {@code null}.
*/
- public static ModifyRequest newModifyRequest(String name)
+ public static ModifyRequest newModifyRequest(final String name)
throws LocalizedIllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(name);
@@ -510,24 +610,23 @@
/**
- * Creates a new modify request using the provided lines of LDIF
- * decoded using the default schema.
+ * Creates a new modify request using the provided lines of LDIF decoded using
+ * the default schema.
*
* @param ldifLines
- * Lines of LDIF containing a single LDIF modify change
- * record.
+ * Lines of LDIF containing a single LDIF modify change record.
* @return The new modify request.
* @throws LocalizedIllegalArgumentException
- * If {@code ldifLines} was empty, or contained invalid
- * LDIF, or could not be decoded using the default schema.
+ * If {@code ldifLines} was empty, or contained invalid LDIF, or
+ * could not be decoded using the default schema.
* @throws NullPointerException
* If {@code ldifLines} was {@code null} .
*/
- public static ModifyRequest newModifyRequest(String... ldifLines)
+ public static ModifyRequest newModifyRequest(final String... ldifLines)
throws LocalizedIllegalArgumentException, NullPointerException
{
// LDIF change record reader is tolerant to missing change types.
- ChangeRecord record = LDIFChangeRecordReader
+ final ChangeRecord record = LDIFChangeRecordReader
.valueOfLDIFChangeRecord(ldifLines);
if (record instanceof ModifyRequest)
@@ -537,7 +636,7 @@
else
{
// Wrong change type.
- LocalizableMessage message = WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE
+ final LocalizableMessage message = WARN_READ_LDIF_RECORD_CHANGE_RECORD_WRONG_TYPE
.get("modify");
throw new LocalizedIllegalArgumentException(message);
}
@@ -546,67 +645,113 @@
/**
- * Creates a new search request using the provided distinguished name,
- * scope, and filter, decoded using the default schema.
+ * Creates a new password modify extended request, with no user identity, old
+ * password, or new password.
*
- * @param name
- * The distinguished name of the base entry relative to which
- * the search is to be performed.
- * @param scope
- * The scope of the search.
- * @param filter
- * The filter that defines the conditions that must be
- * fulfilled in order for an entry to be returned.
- * @param attributeDescriptions
- * The names of the attributes to be included with each
- * entry.
- * @return The new search request.
- * @throws NullPointerException
- * If the {@code name}, {@code scope}, or {@code filter}
- * were {@code null}.
+ * @return The new password modify extended request.
*/
- public static SearchRequest newSearchRequest(DN name,
- SearchScope scope, Filter filter, String... attributeDescriptions)
- throws NullPointerException
+ public static PasswordModifyExtendedRequest newPasswordModifyExtendedRequest()
{
- Validator.ensureNotNull(name, scope, filter);
- return new SearchRequestImpl(name, scope, filter)
- .addAttribute(attributeDescriptions);
+ return new PasswordModifyExtendedRequestImpl();
}
/**
- * Creates a new search request using the provided distinguished name,
- * scope, and filter, decoded using the default schema.
+ * Creates a new Plain SASL bind request having the provided authentication ID
+ * and password, but no authorization ID.
+ *
+ * @param authenticationID
+ * The authentication ID of the user. The authentication ID usually
+ * has the form "dn:" immediately followed by the distinguished name
+ * of the user, or "u:" followed by a user ID string, but other forms
+ * are permitted.
+ * @param password
+ * The password of the user that the client wishes to bind as. The
+ * password will be converted to a UTF-8 octet string.
+ * @return The new Plain SASL bind request.
+ * @throws NullPointerException
+ * If {@code authenticationID} or {@code password} was {@code null}.
+ */
+ public static PlainSASLBindRequest newPlainSASLBindRequest(
+ final String authenticationID, final ByteString password)
+ throws NullPointerException
+ {
+ return new PlainSASLBindRequestImpl(authenticationID, password);
+ }
+
+
+
+ /**
+ * Creates a new search request using the provided distinguished name, scope,
+ * and filter, decoded using the default schema.
*
* @param name
- * The distinguished name of the base entry relative to which
- * the search is to be performed.
+ * The distinguished name of the base entry relative to which the
+ * search is to be performed.
* @param scope
* The scope of the search.
* @param filter
- * The filter that defines the conditions that must be
- * fulfilled in order for an entry to be returned.
+ * The filter that defines the conditions that must be fulfilled in
+ * order for an entry to be returned.
* @param attributeDescriptions
- * The names of the attributes to be included with each
- * entry.
+ * The names of the attributes to be included with each entry.
+ * @return The new search request.
+ * @throws NullPointerException
+ * If the {@code name}, {@code scope}, or {@code filter} were
+ * {@code null}.
+ */
+ public static SearchRequest newSearchRequest(final DN name,
+ final SearchScope scope, final Filter filter,
+ final String... attributeDescriptions) throws NullPointerException
+ {
+ Validator.ensureNotNull(name, scope, filter);
+ final SearchRequest request = new SearchRequestImpl(name, scope, filter);
+ for (final String attributeDescription : attributeDescriptions)
+ {
+ request.addAttribute(attributeDescription);
+ }
+ return request;
+ }
+
+
+
+ /**
+ * Creates a new search request using the provided distinguished name, scope,
+ * and filter, decoded using the default schema.
+ *
+ * @param name
+ * The distinguished name of the base entry relative to which the
+ * search is to be performed.
+ * @param scope
+ * The scope of the search.
+ * @param filter
+ * The filter that defines the conditions that must be fulfilled in
+ * order for an entry to be returned.
+ * @param attributeDescriptions
+ * The names of the attributes to be included with each entry.
* @return The new search request.
* @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema, or if {@code filter} is not a valid LDAP string
- * representation of a filter.
+ * If {@code name} could not be decoded using the default schema, or
+ * if {@code filter} is not a valid LDAP string representation of a
+ * filter.
* @throws NullPointerException
- * If the {@code name}, {@code scope}, or {@code filter}
- * were {@code null}.
+ * If the {@code name}, {@code scope}, or {@code filter} were
+ * {@code null}.
*/
- public static SearchRequest newSearchRequest(String name,
- SearchScope scope, String filter, String... attributeDescriptions)
+ public static SearchRequest newSearchRequest(final String name,
+ final SearchScope scope, final String filter,
+ final String... attributeDescriptions)
throws LocalizedIllegalArgumentException, NullPointerException
{
Validator.ensureNotNull(name, scope, filter);
- return new SearchRequestImpl(DN.valueOf(name), scope, Filter
- .valueOf(filter)).addAttribute(attributeDescriptions);
+ final SearchRequest request = new SearchRequestImpl(DN.valueOf(name),
+ scope, Filter.valueOf(filter));
+ for (final String attributeDescription : attributeDescriptions)
+ {
+ request.addAttribute(attributeDescription);
+ }
+ return request;
}
@@ -619,61 +764,54 @@
*/
public static SimpleBindRequest newSimpleBindRequest()
{
- return new SimpleBindRequestImpl(DN.rootDN(), ByteString.empty());
+ return new SimpleBindRequestImpl("", ByteString.empty());
}
/**
- * Creates a new simple bind request having the provided name and
- * password suitable for name/password authentication.
+ * Creates a new simple bind request having the provided name and password
+ * suitable for name/password authentication. The name will be decoded using
+ * the default schema.
+ * <p>
+ * The LDAP protocol defines the Bind name to be a distinguished name, however
+ * some LDAP implementations have relaxed this constraint and allow other
+ * identities to be used, such as the user's email address.
*
* @param name
- * The distinguished name of the Directory object that the
- * client wishes to bind as, which may be empty.
+ * The name of the Directory object that the client wishes to bind
+ * as, which may be empty.
* @param password
- * The password of the Directory object that the client
- * wishes to bind as, which may be empty indicating that an
- * unauthenticated bind is to be performed.
+ * The password of the Directory object that the client wishes to
+ * bind as, which may be empty indicating that an unauthenticated
+ * bind is to be performed.
* @return The new simple bind request.
* @throws NullPointerException
* If {@code name} or {@code password} was {@code null}.
*/
- public static SimpleBindRequest newSimpleBindRequest(DN name,
- ByteString password) throws NullPointerException
+ public static SimpleBindRequest newSimpleBindRequest(final String name,
+ final String password) throws NullPointerException
{
Validator.ensureNotNull(name, password);
- return new SimpleBindRequestImpl(name, password);
+ return new SimpleBindRequestImpl(name, ByteString.valueOf(password));
}
/**
- * Creates a new simple bind request having the provided name and
- * password suitable for name/password authentication. The name will
- * be decoded using the default schema.
+ * Creates a new start TLS extended request which will use the provided SSL
+ * context.
*
- * @param name
- * The distinguished name of the Directory object that the
- * client wishes to bind as, which may be empty..
- * @param password
- * The password of the Directory object that the client
- * wishes to bind as, which may be empty indicating that an
- * unauthenticated bind is to be performed.
- * @return The new simple bind request.
- * @throws LocalizedIllegalArgumentException
- * If {@code name} could not be decoded using the default
- * schema.
+ * @param sslContext
+ * The SSLContext that should be used when installing the TLS layer.
+ * @return The new start TLS extended request.
* @throws NullPointerException
- * If {@code name} or {@code password} was {@code null}.
+ * If {@code sslContext} was {@code null}.
*/
- public static SimpleBindRequest newSimpleBindRequest(String name,
- String password) throws LocalizedIllegalArgumentException,
- NullPointerException
+ public static StartTLSExtendedRequest newStartTLSExtendedRequest(
+ final SSLContext sslContext) throws NullPointerException
{
- Validator.ensureNotNull(name, password);
- return new SimpleBindRequestImpl(DN.valueOf(name), ByteString
- .valueOf(password));
+ return new StartTLSExtendedRequestImpl(sslContext);
}
@@ -690,6 +828,18 @@
+ /**
+ * Creates a new Who Am I extended request.
+ *
+ * @return The new Who Am I extended request.
+ */
+ public static WhoAmIExtendedRequest newWhoAmIExtendedRequest()
+ {
+ return new WhoAmIExtendedRequestImpl();
+ }
+
+
+
private Requests()
{
// Prevent instantiation.
--
Gitblit v1.10.0