| | |
| | | |
| | | |
| | | |
| | | 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; |
| | |
| | | |
| | | |
| | | /** |
| | | * 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> |
| | |
| | | * 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); |
| | | } |
| | |
| | | * @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. |
| | |
| | | * @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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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) |
| | |
| | | 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); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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. |
| | |
| | | |
| | | |
| | | /** |
| | | * 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. |
| | |
| | | * 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. |
| | |
| | | * 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); |
| | | } |
| | | |
| | | |
| | |
| | | * @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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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. |
| | |
| | | * @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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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. |
| | |
| | | * 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)); |
| | | } |
| | | |
| | | |
| | |
| | | * @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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | |
| | | |
| | | |
| | | /** |
| | | * 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) |
| | |
| | | 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); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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; |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | 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); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 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. |