@NotExtensible @ThreadSafety(level=NOT_THREADSAFE) public abstract class UnboundIDTOTPBindRequest extends SASLBindRequest
NOTE: This class, and other classes within the
com.unboundid.ldap.sdk.unboundidds
package structure, are only
supported for use against Ping Identity, UnboundID, and
Nokia/Alcatel-Lucent 8661 server products. These classes provide support
for proprietary functionality or for external specifications that are not
considered stable or mature enough to be guaranteed to work in an
interoperable way with other types of LDAP servers.
UnboundIDTOTPCredentials ::= SEQUENCE { authenticationID [0] OCTET STRING, authorizationID [1] OCTET STRING OPTIONAL, totpPassword [2] OCTET STRING, staticPassword [3] OCTET STRING OPTIONAL }
SingleUseTOTPBindRequest
class may be used for
cases in which the one-time password will be obtained from an external source
(e.g., provided by the user, perhaps using the Google Authenticator
application), and the ReusableTOTPBindRequest
class may be used for
cases in which the one-time password should be generated by the LDAP SDK
itself. Because the SingleUseTOTPBindRequest
class contains a
point-in-time password, it cannot be used for re-authentication (e.g., for
use with a connection pool, following referrals, or with the auto-reconnect
feature). If TOTP authentication should be used in contexts where one or
more of these may be needed, then the dynamic variant should be used.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
UNBOUNDID_TOTP_MECHANISM_NAME
The name for the UnboundID TOTP SASL mechanism.
|
CRED_TYPE_SASL
VERSION_ELEMENT
Modifier | Constructor and Description |
---|---|
protected |
UnboundIDTOTPBindRequest(java.lang.String authenticationID,
java.lang.String authorizationID,
ASN1OctetString staticPassword,
Control... controls)
Creates a new TOTP bind request with the provided information.
|
protected |
UnboundIDTOTPBindRequest(java.lang.String authenticationID,
java.lang.String authorizationID,
byte[] staticPassword,
Control... controls)
Creates a new TOTP bind request with the provided information.
|
protected |
UnboundIDTOTPBindRequest(java.lang.String authenticationID,
java.lang.String authorizationID,
java.lang.String staticPassword,
Control... controls)
Creates a new TOTP bind request with the provided information.
|
Modifier and Type | Method and Description |
---|---|
static ASN1OctetString |
encodeCredentials(java.lang.String authenticationID,
java.lang.String authorizationID,
java.lang.String totpPassword,
ASN1OctetString staticPassword)
Encodes the provided information in a form suitable for inclusion in an
UNBOUNDID-TOTP SASL bind request.
|
java.lang.String |
getAuthenticationID()
Retrieves the authentication ID for the bind request.
|
java.lang.String |
getAuthorizationID()
Retrieves the authorization ID for the bind request, if one was provided.
|
int |
getLastMessageID()
Retrieves the message ID for the last LDAP message sent using this request.
|
protected abstract ASN1OctetString |
getSASLCredentials()
Retrieves the encoded SASL credentials that may be included in an
UNBOUNDID-TOTP SASL bind request.
|
java.lang.String |
getSASLMechanismName()
Retrieves the name of the SASL mechanism used in this SASL bind request.
|
ASN1OctetString |
getStaticPassword()
Retrieves the static password for the bind request, if one was provided.
|
protected BindResult |
process(LDAPConnection connection,
int depth)
Sends this bind request to the target server over the provided connection
and returns the corresponding response.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this request to the provided buffer.
|
getBindType, responseReceived, sendBindRequest, sendMessage, toCode
duplicate, duplicate, getOperationType, getRebindRequest
followReferrals, getControl, getControlList, getControls, getIntermediateResponseListener, getReferralConnector, getReferralConnectorInternal, getReferralDepth, getResponseTimeoutMillis, hasControl, hasControl, setFollowReferrals, setIntermediateResponseListener, setReferralConnector, setReferralDepth, setResponseTimeoutMillis, toString
@NotNull public static final java.lang.String UNBOUNDID_TOTP_MECHANISM_NAME
protected UnboundIDTOTPBindRequest(@NotNull java.lang.String authenticationID, @Nullable java.lang.String authorizationID, @Nullable java.lang.String staticPassword, @Nullable Control... controls)
authenticationID
- The authentication identity for the bind request.
It must not be null
, and must be in the
form "u:" followed by a username, or "dn:"
followed by a DN.authorizationID
- The authorization identity for the bind request.
It may be null
if the authorization
identity should be the same as the authentication
identity. If an authorization identity is
specified, it must be in the form "u:" followed
by a username, or "dn:" followed by a DN. The
value "dn:" may indicate an authorization
identity of the anonymous user.staticPassword
- The static password for the target user. It may
be null
if only the one-time password is
to be used for authentication (which may or may
not be allowed by the server).controls
- The set of controls to include in the bind
request.protected UnboundIDTOTPBindRequest(@NotNull java.lang.String authenticationID, @Nullable java.lang.String authorizationID, @Nullable byte[] staticPassword, @Nullable Control... controls)
authenticationID
- The authentication identity for the bind request.
It must not be null
, and must be in the
form "u:" followed by a username, or "dn:"
followed by a DN.authorizationID
- The authorization identity for the bind request.
It may be null
if the authorization
identity should be the same as the authentication
identity. If an authorization identity is
specified, it must be in the form "u:" followed
by a username, or "dn:" followed by a DN. The
value "dn:" may indicate an authorization
identity of the anonymous user.staticPassword
- The static password for the target user. It may
be null
if only the one-time password is
to be used for authentication (which may or may
not be allowed by the server).controls
- The set of controls to include in the bind
request.protected UnboundIDTOTPBindRequest(@NotNull java.lang.String authenticationID, @Nullable java.lang.String authorizationID, @Nullable ASN1OctetString staticPassword, @Nullable Control... controls)
authenticationID
- The authentication identity for the bind request.
It must not be null
, and must be in the
form "u:" followed by a username, or "dn:"
followed by a DN.authorizationID
- The authorization identity for the bind request.
It may be null
if the authorization
identity should be the same as the authentication
identity. If an authorization identity is
specified, it must be in the form "u:" followed
by a username, or "dn:" followed by a DN. The
value "dn:" may indicate an authorization
identity of the anonymous user.staticPassword
- The static password for the target user. It may
be null
if only the one-time password is
to be used for authentication (which may or may
not be allowed by the server). If it is
non-null
, then it must have the
appropriate BER type.controls
- The set of controls to include in the bind
request.@NotNull public final java.lang.String getAuthenticationID()
@Nullable public final java.lang.String getAuthorizationID()
null
if the
authorization ID should be the same as the authentication ID.@Nullable public final ASN1OctetString getStaticPassword()
null
if no
static password was provided and only the one-time password should
be used for authentication.@NotNull public final java.lang.String getSASLMechanismName()
getSASLMechanismName
in class SASLBindRequest
@NotNull protected final BindResult process(@NotNull LDAPConnection connection, int depth) throws LDAPException
process
in class BindRequest
connection
- The connection to use to send this bind request to the
server and read the associated response.depth
- The current referral depth for this request. It should
always be one for the initial request, and should only
be incremented when following referrals.LDAPException
- If a problem occurs while sending the request or
reading the response.@NotNull protected abstract ASN1OctetString getSASLCredentials() throws LDAPException
LDAPException
- If a problem is encountered while attempting to
obtain the encoded credentials.@NotNull public static ASN1OctetString encodeCredentials(@NotNull java.lang.String authenticationID, @Nullable java.lang.String authorizationID, @NotNull java.lang.String totpPassword, @Nullable ASN1OctetString staticPassword)
authenticationID
- The authentication identity for the bind request.
It must not be null
, and must be in the
form "u:" followed by a username, or "dn:"
followed by a DN.authorizationID
- The authorization identity for the bind request.
It may be null
if the authorization
identity should be the same as the authentication
identity. If an authorization identity is
specified, it must be in the form "u:" followed
by a username, or "dn:" followed by a DN. The
value "dn:" may indicate an authorization
identity of the anonymous user.totpPassword
- The TOTP password to include in the bind request.
It must not be null
.staticPassword
- The static password for the target user. It may
be null
if only the one-time password is
to be used for authentication (which may or may
not be allowed by the server).public final int getLastMessageID()
getLastMessageID
in class SASLBindRequest
public final void toString(@NotNull java.lang.StringBuilder buffer)
toString
in interface ReadOnlyLDAPRequest
toString
in class LDAPRequest
buffer
- The buffer to which to append a string representation of
this request.