/* See LICENSE for licensing and NOTICE for copyright. */
package org.ldaptive.ad.extended;
import org.ldaptive.AbstractOperation;
import org.ldaptive.Connection;
import org.ldaptive.ConnectionInitializer;
import org.ldaptive.LdapException;
import org.ldaptive.Response;
/**
* Executes an active directory fast bind operation. See
* http://msdn.microsoft.com/en-us/library/cc223503(v=prot.20).aspx.
*
* @author Middleware Services
*/
public class FastBindOperation extends AbstractOperation<FastBindRequest, Void>
{
/**
* Creates a new fast bind operation.
*
* @param conn connection
*/
public FastBindOperation(final Connection conn)
{
super(conn);
}
@Override
protected Response<Void> invoke(final FastBindRequest request)
throws LdapException
{
@SuppressWarnings("unchecked")
final Response<Void> response = (Response<Void>) getConnection().getProviderConnection().extendedOperation(request);
return response;
}
/** Connection initializer that executes the {@link FastBindOperation}. */
public static class FastBindConnectionInitializer implements ConnectionInitializer
{
@Override
public Response<Void> initialize(final Connection c)
throws LdapException
{
final FastBindOperation op = new FastBindOperation(c);
op.setOperationExceptionHandler(null);
return op.execute(new FastBindRequest());
}
}
}