/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive; import java.util.Arrays; import org.ldaptive.sasl.SaslConfig; /** * Contains the data required to perform an ldap bind operation. * * @author Middleware Services */ public class BindRequest extends AbstractRequest { /** DN to bind as before performing operations. */ private String bindDn; /** Credential for the bind DN. */ private Credential bindCredential; /** Configuration for SASL authentication. */ private SaslConfig saslConfig; /** Default constructor. */ public BindRequest() {} /** * Creates a new bind request. * * @param dn to bind as * @param credential to bind with */ public BindRequest(final String dn, final Credential credential) { setDn(dn); setCredential(credential); } /** * Creates a new bind request. * * @param dn to bind as * @param credential to bind with * @param config sasl configuration */ public BindRequest(final String dn, final Credential credential, final SaslConfig config) { setDn(dn); setCredential(credential); setSaslConfig(config); } /** * Creates a new bind request. * * @param config sasl configuration */ public BindRequest(final SaslConfig config) { setSaslConfig(config); } /** * Returns the bind DN. * * @return DN to bind as */ public String getDn() { return bindDn; } /** * Sets the bind DN to authenticate as before performing operations. * * @param dn to bind as */ public void setDn(final String dn) { bindDn = dn; } /** * Returns the credential used with the bind DN. * * @return bind DN credential */ public Credential getCredential() { return bindCredential; } /** * Sets the credential of the bind DN. * * @param credential to use with bind DN */ public void setCredential(final Credential credential) { bindCredential = credential; } /** * Returns the sasl config. * * @return sasl config */ public SaslConfig getSaslConfig() { return saslConfig; } /** * Sets the sasl config. * * @param config sasl config */ public void setSaslConfig(final SaslConfig config) { saslConfig = config; } @Override public String toString() { return String.format( "[%s@%d::bindDn=%s, saslConfig=%s, controls=%s, referralHandler=%s, " + "intermediateResponseHandlers=%s]", getClass().getName(), hashCode(), bindDn, saslConfig, Arrays.toString(getControls()), getReferralHandler(), Arrays.toString(getIntermediateResponseHandlers())); } }