Package org.opends.server.core
Class BindOperation
java.lang.Object
org.opends.server.types.Operation
org.opends.server.core.BindOperation
- All Implemented Interfaces:
PluginOperation,PostCommitOperation,PostOperationBindOperation,PostOperationOperation,PostResponseBindOperation,PostResponseOperation,PreOperationBindOperation,PreOperationOperation,PreParseBindOperation,PreParseOperation
public final class BindOperation
extends Operation
implements PreOperationBindOperation, PreParseBindOperation, PostOperationBindOperation, PostResponseBindOperation
This class defines an operation that may be used to authenticate a user to the Directory Server.
-
Field Summary
Fields inherited from class org.opends.server.types.Operation
backend, context, out, pluginConfigManager, request, result, serverContext -
Constructor Summary
ConstructorsConstructorDescriptionBindOperation(RequestContext context, LocalBackend<?> backend, BindRequest request, Consumer<Response> out, ServerContext serverContext) Creates a new bind operation. -
Method Summary
Modifier and TypeMethodDescriptionRetrieves the authentication type for this bind operation.Retrieves the bind DN for this bind operation.Returns the request associated to this operation.Retrieves the user entry associated with the SASL authentication attempt.Retrieves the SASL credentials for this bind operation.Retrieves the SASL mechanism for this bind operation.Returns theSaslServerto use by the underlying connection, ornullif SASL integrity and/or privacy protection must not be enabled.Retrieves the set of server SASL credentials to include in the bind response.Retrieves the simple authentication password for this bind operation.Retrieves the user entry DN for this bind operation.protected voidInvokes any applicable post-response plugins.protected voidInvokes any applicable pre-parse plugins.protected ResultoperationToResult(Result result) Generates a result for this operation.voidrunFakePasswordMatches(Dn bindDn, ByteString password) When using cost based hashes, ensure similar response times when login with non-existing vs.protected ResultrunImpl()Performs the work of actually processing this operation.voidsetAuthenticationInfo(AuthenticationInfo authInfo) Specifies the authentication info that resulted from processing this bind operation.voidSpecifies the bind DN for this bind operation.voidsetSASLAuthUserEntry(Entry saslAuthUserEntry) Specifies the user entry associated with the SASL authentication attempt.voidsetSASLCredentials(String saslMechanism, ByteString saslCredentials) Specifies the SASL credentials for this bind operation.voidsetSaslServer(SaslServer saslServer) Sets the SASL server.voidsetServerSASLCredentials(ByteString serverSASLCredentials) Specifies the set of server SASL credentials to include in the bind response.voidsetSimplePassword(ByteString simplePassword) Specifies the simple authentication password for this bind operation.voidtoString(StringBuilder buffer) Appends a string representation of this operation to the provided buffer.Methods inherited from class org.opends.server.types.Operation
addAdditionalLogItem, addPasswordPolicyWarningToLog, addPostReadResponse, addPreReadResponse, addRequestControl, addResponseControl, checkAttributeConformsToSyntax, checkIfBackendIsWritable, checkIfCanceled, createLdapException, equals, evaluateProxyAuthControls, filterNonDisclosableMatchedDn, getAccessControlHandler, getAdditionalLogItems, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getClientConnection, getConnectionID, getMessageID, getOperationID, getProxiedAuthorizationDN, getRequestContext, getRequestControl, getRequestControls, getResponseControls, getResult, getResultCode, hashCode, hasPrivilege, hasRequestControl, isInternalOperation, isProxyAuthzControl, isSynchronizationOperation, mustCheckSchema, removeAllDisallowedControls, removeResponseControl, run, sendIntermediateResponse, sendResult, setAttachment, setResult, setResult, toString, trySetLargestEntrySizeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opends.server.types.operation.PluginOperation
checkIfCanceled, getAttachment, getAttachments, getClientConnection, getConnectionID, getMessageID, getOperationID, getRequestControl, getRequestControl, getRequestControls, getResponseControls, hasPrivilege, isInternalOperation, isSynchronizationOperation, setAttachment, toStringMethods inherited from interface org.opends.server.types.operation.PostOperationOperation
addAdditionalLogItem, addResponseControl, getAdditionalLogItems, getAuthorizationDN, getResultCode, removeResponseControl, setResult, setResultMethods inherited from interface org.opends.server.types.operation.PreOperationOperation
addAdditionalLogItem, addResponseControl, getAdditionalLogItems, getAuthorizationDN, removeResponseControl, sendIntermediateResponseMethods inherited from interface org.opends.server.types.operation.PreParseOperation
addAdditionalLogItem, addRequestControl, addResponseControl, getAdditionalLogItems, removeResponseControl, sendIntermediateResponse
-
Constructor Details
-
BindOperation
public BindOperation(RequestContext context, LocalBackend<?> backend, BindRequest request, Consumer<Response> out, ServerContext serverContext) Creates a new bind operation.- Parameters:
context- The context.backend- The local backend in which this request is to be processed.request- The request.out- A consumer responsible for sending responses to the client.serverContext- the server context
-
-
Method Details
-
getAuthenticationType
Description copied from interface:PreOperationBindOperationRetrieves the authentication type for this bind operation.- Specified by:
getAuthenticationTypein interfacePostOperationBindOperation- Specified by:
getAuthenticationTypein interfacePostResponseBindOperation- Specified by:
getAuthenticationTypein interfacePreOperationBindOperation- Specified by:
getAuthenticationTypein interfacePreParseBindOperation- Returns:
- The authentication type for this bind operation.
-
setBindDN
Description copied from interface:PreParseBindOperationSpecifies the bind DN for this bind operation.- Specified by:
setBindDNin interfacePreParseBindOperation- Parameters:
bindDN- The bind DN for this bind
-
getBindDN
Description copied from interface:PreOperationBindOperationRetrieves the bind DN for this bind operation.- Specified by:
getBindDNin interfacePostOperationBindOperation- Specified by:
getBindDNin interfacePostResponseBindOperation- Specified by:
getBindDNin interfacePreOperationBindOperation- Specified by:
getBindDNin interfacePreParseBindOperation- Returns:
- The bind DN for this bind operation.
-
getSimplePassword
Description copied from interface:PreOperationBindOperationRetrieves the simple authentication password for this bind operation.- Specified by:
getSimplePasswordin interfacePostOperationBindOperation- Specified by:
getSimplePasswordin interfacePostResponseBindOperation- Specified by:
getSimplePasswordin interfacePreOperationBindOperation- Specified by:
getSimplePasswordin interfacePreParseBindOperation- Returns:
- The simple authentication password for this bind operation.
-
setSimplePassword
Description copied from interface:PreParseBindOperationSpecifies the simple authentication password for this bind operation.- Specified by:
setSimplePasswordin interfacePreParseBindOperation- Parameters:
simplePassword- The simple authentication password for this bind operation.
-
getSASLMechanism
Description copied from interface:PreOperationBindOperationRetrieves the SASL mechanism for this bind operation.- Specified by:
getSASLMechanismin interfacePostOperationBindOperation- Specified by:
getSASLMechanismin interfacePostResponseBindOperation- Specified by:
getSASLMechanismin interfacePreOperationBindOperation- Specified by:
getSASLMechanismin interfacePreParseBindOperation- Returns:
- The SASL mechanism for this bind operation, or
nullif the bind does not use SASL authentication.
-
getSASLCredentials
Description copied from interface:PreOperationBindOperationRetrieves the SASL credentials for this bind operation.- Specified by:
getSASLCredentialsin interfacePostOperationBindOperation- Specified by:
getSASLCredentialsin interfacePostResponseBindOperation- Specified by:
getSASLCredentialsin interfacePreOperationBindOperation- Specified by:
getSASLCredentialsin interfacePreParseBindOperation- Returns:
- The SASL credentials for this bind operation, or
nullif there are none or if the bind does not use SASL authentication.
-
setSASLCredentials
Description copied from interface:PreParseBindOperationSpecifies the SASL credentials for this bind operation.- Specified by:
setSASLCredentialsin interfacePreParseBindOperation- Parameters:
saslMechanism- The SASL mechanism for this bind operation.saslCredentials- The SASL credentials for this bind operation, ornullif there are none.
-
getServerSASLCredentials
Description copied from interface:PostOperationBindOperationRetrieves the set of server SASL credentials to include in the bind response.- Specified by:
getServerSASLCredentialsin interfacePostOperationBindOperation- Specified by:
getServerSASLCredentialsin interfacePostResponseBindOperation- Returns:
- The set of server SASL credentials to include in the bind response, or
nullif there are none.
-
setServerSASLCredentials
Description copied from interface:PreOperationBindOperationSpecifies the set of server SASL credentials to include in the bind response.- Specified by:
setServerSASLCredentialsin interfacePostOperationBindOperation- Specified by:
setServerSASLCredentialsin interfacePreOperationBindOperation- Specified by:
setServerSASLCredentialsin interfacePreParseBindOperation- Parameters:
serverSASLCredentials- The set of server SASL credentials to include in the bind response.
-
getSASLAuthUserEntry
Description copied from interface:PostOperationBindOperationRetrieves the user entry associated with the SASL authentication attempt. This should be set by any SASL mechanism in which the processing was able to get far enough to make this determination, regardless of whether the authentication was ultimately successful.- Specified by:
getSASLAuthUserEntryin interfacePostOperationBindOperation- Specified by:
getSASLAuthUserEntryin interfacePostResponseBindOperation- Returns:
- The user entry associated with the SASL authentication attempt, or
nullif it was not a SASL authentication or the SASL processing was not able to map the request to a user.
-
setSASLAuthUserEntry
Specifies the user entry associated with the SASL authentication attempt. This should be set by any SASL mechanism in which the processing was able to get far enough to make this determination, regardless of whether the authentication was ultimately successful.- Parameters:
saslAuthUserEntry- The user entry associated with the SASL authentication attempt.
-
getUserEntryDN
Description copied from interface:PreOperationBindOperationRetrieves the user entry DN for this bind operation. It will only be available for simple bind operations (and may be different than the bind DN from the client request).- Specified by:
getUserEntryDNin interfacePostOperationBindOperation- Specified by:
getUserEntryDNin interfacePostResponseBindOperation- Specified by:
getUserEntryDNin interfacePreOperationBindOperation- Returns:
- The user entry DN for this bind operation, or
nullif the bind processing has not progressed far enough to identify the user or if the user DN could not be determined.
-
setAuthenticationInfo
Specifies the authentication info that resulted from processing this bind operation. This method must only be called by SASL mechanism handlers during the course of processing theprocessSASLBindmethod.- Parameters:
authInfo- The authentication info that resulted from processing this bind operation.
-
getRequest
Description copied from class:OperationReturns the request associated to this operation.- Specified by:
getRequestin interfacePluginOperation- Overrides:
getRequestin classOperation- Returns:
- The request associated to this operation.
-
toString
Description copied from interface:PluginOperationAppends a string representation of this operation to the provided buffer.- Specified by:
toStringin interfacePluginOperation- Specified by:
toStringin classOperation- Parameters:
buffer- The buffer into which a string representation of this operation should be appended.
-
runImpl
Description copied from class:OperationPerforms the work of actually processing this operation.- Specified by:
runImplin classOperation- Returns:
nullif the result is delayed (e.g. persistent search),Resultotherwise.- Throws:
LdapException- If an error occurred when processing the operation.
-
invokePreParsePlugins
Description copied from class:OperationInvokes any applicable pre-parse plugins.- Specified by:
invokePreParsePluginsin classOperation- Throws:
LdapException- If an error occurred when invoking the pre-parse plugins.
-
invokePostResponsePlugins
protected void invokePostResponsePlugins()Description copied from class:OperationInvokes any applicable post-response plugins.- Specified by:
invokePostResponsePluginsin classOperation
-
operationToResult
Description copied from class:OperationGenerates a result for this operation.- Overrides:
operationToResultin classOperation- Parameters:
result- The result to convert.- Returns:
- The result.
-
getSaslServer
Returns theSaslServerto use by the underlying connection, ornullif SASL integrity and/or privacy protection must not be enabled.- Returns:
- The
SaslServerto use by the underlying connection, ornullif SASL integrity and/or privacy protection must not enabled.
-
setSaslServer
Sets the SASL server.- Parameters:
saslServer- the SASL server to set
-
runFakePasswordMatches
When using cost based hashes, ensure similar response times when login with non-existing vs. existing users, this also applies to other failure conditions.- Parameters:
bindDn- the bind DNpassword- the bind password- Throws:
LdapException- If a problem occurs while attempting to encode the password.
-