package io.apiman.gateway.engine.components;
import io.apiman.gateway.engine.IComponent;
import io.apiman.gateway.engine.async.IAsyncResultHandler;
import io.apiman.gateway.engine.components.ldap.ILdapClientConnection;
import io.apiman.gateway.engine.components.ldap.ILdapResult;
import io.apiman.gateway.engine.components.ldap.LdapConfigBean;
/**
* Allows simple BIND and query operations to an LDAP server.
*
* @author Marc Savy {@literal <msavy@redhat.com>}
*/
public interface ILdapComponent extends IComponent {
/**
* Open an LDAP connection to allow queries, an ongoing connection is
* returned to the handler.
*
* @param config the configuration
* @param handler the resulting connection
*/
void connect(LdapConfigBean config, IAsyncResultHandler<ILdapClientConnection> handler);
/**
* LDAP BIND operation only. The connection is terminate on your behalf.
*
* @param config the configuration
* @param handler the handler indicating the success of the LDAP BIND.
*/
void bind(LdapConfigBean config, IAsyncResultHandler<ILdapResult> handler);
}