@param username
The username provide credentials to the remote peer, or null if there is none.
@param password
The password provide credentials to the remote peer, or null if there is none.
@param allowedSaslMechanisms
The possible mechanism(s) to which the client should restrict its mechanism selection to if offered by the
server, or null/empty if no restriction.
@param handler
The handler to convey the result of the SASL process to.
The async result will succeed if the SASL handshake completed successfully, it will fail with
<ul>
<li>a {@link MechanismMismatchException} if this client does not support any of the SASL
mechanisms offered by the server,</li>
<li>a {@link SaslSystemException} if the SASL handshake fails with either of the
{@link SaslOutcome#PN_SASL_SYS}, {@link SaslOutcome#PN_SASL_TEMP} or
{@link SaslOutcome#PN_SASL_PERM} outcomes,</li>
<li>a {@code javax.security.sasl.AuthenticationException} if the handshake fails with
the {@link SaslOutcome#PN_SASL_AUTH} outcome or</li>
<li>a generic {@code javax.security.sasl.SaslException} if the handshake fails due to
any other reason.</li>
</ul>
Create the authenticator and initialize it.
@param username The username provide credentials to the remote peer, or null if there is none. @param password The password provide credentials to the remote peer, or null if there is none. @param allowedSaslMechanisms The possible mechanism(s) to which the client should restrict its mechanism selection to if offered by the server, or null/empty if no restriction. @param handler The handler to convey the result of the SASL process to. The async result will succeed if the SASL handshake completed successfully, it will fail with <ul> <li>a {@link MechanismMismatchException} if this client does not support any of the SASL mechanisms offered by the server,</li> <li>a {@link SaslSystemException} if the SASL handshake fails with either of the {@link SaslOutcome#PN_SASL_SYS}, {@link SaslOutcome#PN_SASL_TEMP} or {@link SaslOutcome#PN_SASL_PERM} outcomes,</li> <li>a {@code javax.security.sasl.AuthenticationException} if the handshake fails with the {@link SaslOutcome#PN_SASL_AUTH} outcome or</li> <li>a generic {@code javax.security.sasl.SaslException} if the handshake fails due to any other reason.</li> </ul>