@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class PasswordValidationDetailsResponseControl extends Control implements DecodeableControl
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.
false
, and a value with the provided encoding:
PasswordValidationDetailsResponse ::= SEQUENCE { validationResult CHOICE { validationDetails [0] SEQUENCE OF PasswordQualityRequirementValidationResult, noPasswordProvided [1] NULL, multiplePasswordsProvided [2] NULL, noValidationAttempted [3] NULL, ... }, missingCurrentPassword [3] BOOLEAN DEFAULT FALSE, mustChangePassword [4] BOOLEAN DEFAULT FALSE, secondsUntilExpiration [5] INTEGER OPTIONAL, ... }
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PASSWORD_VALIDATION_DETAILS_RESPONSE_OID
The OID (1.3.6.1.4.1.30221.2.5.41) for the password validation details
response control.
|
Constructor and Description |
---|
PasswordValidationDetailsResponseControl(PasswordValidationDetailsResponseType responseType,
java.util.Collection<PasswordQualityRequirementValidationResult> validationResults,
boolean missingCurrentPassword,
boolean mustChangePassword,
java.lang.Integer secondsUntilExpiration)
Creates a password validation details response control with the provided
information.
|
PasswordValidationDetailsResponseControl(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Creates a new password validation details response control by decoding the
provided generic control information.
|
Modifier and Type | Method and Description |
---|---|
PasswordValidationDetailsResponseControl |
decodeControl(java.lang.String oid,
boolean isCritical,
ASN1OctetString value)
Creates a new instance of this decodeable control from the provided
information.
|
static PasswordValidationDetailsResponseControl |
decodeJSONControl(JSONObject controlObject,
boolean strict)
Attempts to decode the provided object as a JSON representation of a
password validation details response control.
|
static PasswordValidationDetailsResponseControl |
get(LDAPException exception)
Extracts a password validation details response control from the provided
result.
|
static PasswordValidationDetailsResponseControl |
get(LDAPResult result)
Extracts a password validation details response control from the provided
result.
|
java.lang.String |
getControlName()
Retrieves the user-friendly name for this control, if available.
|
PasswordValidationDetailsResponseType |
getResponseType()
Retrieves the response type for this password validation details response
control.
|
java.lang.Integer |
getSecondsUntilExpiration()
Retrieves the maximum length of time, in seconds, that the newly-set
password will be considered valid.
|
java.util.List<PasswordQualityRequirementValidationResult> |
getValidationResults()
Retrieves a list of the results obtained when attempting to validate the
proposed password against the password quality requirements in effect for
the operation.
|
boolean |
missingCurrentPassword()
Indicates whether the associated operation is a self password change that
requires the user to provide his/her current password when setting a new
password, but no current password was provided.
|
boolean |
mustChangePassword()
Indicates whether the user will be required to immediately change his/her
password after the associated add or administrative reset is complete.
|
JSONObject |
toJSONControl()
Retrieves a representation of this password validation details response
control as a JSON object.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP control to the provided
buffer.
|
decode, decode, decodeControls, decodeJSONControl, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, registerDecodeableControl, toString, writeTo
@NotNull public static final java.lang.String PASSWORD_VALIDATION_DETAILS_RESPONSE_OID
public PasswordValidationDetailsResponseControl(@NotNull PasswordValidationDetailsResponseType responseType, @Nullable java.util.Collection<PasswordQualityRequirementValidationResult> validationResults, boolean missingCurrentPassword, boolean mustChangePassword, @Nullable java.lang.Integer secondsUntilExpiration)
responseType
- The response type for this password
validation details response control. This
must not be null
.validationResults
- A list of the results obtained when
validating the password against the
password quality requirements. This must
be null
or empty if the
responseType
element has a value
other than VALIDATION_DETAILS
.missingCurrentPassword
- Indicates whether the associated operation
is a self change that failed (or would have
failed if not for additional validation
failures) because the user did not provide
his/her current password as required.mustChangePassword
- Indicates whether the associated operation
is an add or administrative reset that will
require the user to change his/her password
immediately after authenticating before
allowing them to perform any other
operation in the server.secondsUntilExpiration
- The maximum length of time, in seconds,
that the newly-set password will be
considered valid. This may be null
if the new password will be considered
valid indefinitely.public PasswordValidationDetailsResponseControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
oid
- The OID for the control.isCritical
- Indicates whether the control should be considered
critical.value
- The value for the control.LDAPException
- If the provided information cannot be decoded to
create a password validation details response
control.@NotNull public PasswordValidationDetailsResponseType getResponseType()
@NotNull public java.util.List<PasswordQualityRequirementValidationResult> getValidationResults()
public boolean missingCurrentPassword()
true
if the associated operation is a self password change
that requires the user to provide his/her current password when
setting a new password but none was required, or false
if
the associated operation was not a self change, or if the user's
current password was provided.public boolean mustChangePassword()
true
if the associated operation is an add or
administrative reset and the user will be required to change
his/her password before being allowed to perform any other
operation, or false
if the associated operation was not am
add or an administrative reset, or if the user will not be
required to immediately change his/her password.@Nullable public java.lang.Integer getSecondsUntilExpiration()
mustChangePassword()
returns true
, then this value will be the length of time that the
user has to perform a self password change before the account becomes
locked. If mustChangePassword()
returns false
, then this
value will be the length of time until the password expires.null
if the new
password will be valid indefinitely.@NotNull public PasswordValidationDetailsResponseControl decodeControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
decodeControl
in interface DecodeableControl
oid
- The OID for the control.isCritical
- Indicates whether the control should be marked
critical.value
- The encoded value for the control. This may be
null
if no value was provided.LDAPException
- If the provided information cannot be decoded as a
valid instance of this decodeable control.@Nullable public static PasswordValidationDetailsResponseControl get(@NotNull LDAPResult result) throws LDAPException
result
- The result from which to retrieve the password validation
details response control.null
if the result did not contain a
password validation details response control.LDAPException
- If a problem is encountered while attempting to
decode the password validation details response
control contained in the provided result.@NotNull public static PasswordValidationDetailsResponseControl get(@NotNull LDAPException exception) throws LDAPException
exception
- The exception that was thrown when trying to process the
associated operation.null
if the result did not contain a
password validation details response control.LDAPException
- If a problem is encountered while attempting to
decode the password validation details response
control contained in the provided result.@NotNull public java.lang.String getControlName()
getControlName
in class Control
@NotNull public JSONObject toJSONControl()
oid
-- A mandatory string field whose value is the object
identifier for this control. For the password validation details
response control, the OID is "1.3.6.1.4.1.30221.2.5.41".
control-name
-- An optional string field whose value is a
human-readable name for this control. This field is only intended for
descriptive purposes, and when decoding a control, the oid
field should be used to identify the type of control.
criticality
-- A mandatory Boolean field used to indicate
whether this control is considered critical.
value-base64
-- An optional string field whose value is a
base64-encoded representation of the raw value for this password
validation details response control. Exactly one of the
value-base64
and value-json
fields must be present.
value-json
-- An optional JSON object field whose value is a
user-friendly representation of the value for this password validation
details response control. Exactly one of the value-base64
and
value-json
fields must be present, and if the
value-json
field is used, then it will use the following
fields:
response-type
-- A string field that specifies the result
of the password validation processing for the attempt. The value
will be one of "validation-performed
",
"no-password-provided
",
"multiple-passwords-provided
", or
"no-validation-attempted
".
validation-details
-- An optional array field whose values
are JSON objects with information about the types of validation
performed for the new password. The fields that may be used in
these JSON objects include:
password-quality-requirement
-- A JSON object whose
value provides information about a password quality requirement
that was evaluated. The fields used in these JSON objects
include:
description
-- A string field whose value is a
user-friendly description of the password quality
requirement.
client-side-validation-type
-- An optional string
field whose value is an identifier that the client can use
to programmatically determine the type of requirement.
client-side-validation-properties
-- An optional
array field whose values are JSON objects with additional
properties that the client can use in the course of
programmatically determining whether a proposed password is
likely to satisfy the requirement. Each of these JSON
objects will include a name
field whose value is a
string that specifies the property name, and a
value
field whose value is a string that specifies
the property value.
requirement-satisfied
-- A Boolean field that indicates
whether the provided new password satisfies the password
quality requirement.
additional-information
-- An optional string field
whose value provides additional information about the
validation for the associated requirement.
missing-current-password
-- A Boolean field that indicates
whether the server requires the user's current password to be
provided when choosing a new password, but that password was not
provided.
must-change-password
-- A Boolean field that indicates
whether the user will be required to choose a new password before
they will be allowed to request any other operations.
seconds-until-expiration
-- An optional integer field whose
value is the number of seconds until the new password will
expire.
toJSONControl
in class Control
@NotNull public static PasswordValidationDetailsResponseControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException
controlObject
- The JSON object to be decoded. It must not be
null
.strict
- Indicates whether to use strict mode when decoding
the provided JSON object. If this is true
,
then this method will throw an exception if the
provided JSON object contains any unrecognized
fields. If this is false
, then unrecognized
fields will be ignored.LDAPException
- If the provided JSON object cannot be parsed as a
valid password validation details response control.