Package com.unboundid.ldap.sdk.controls
Class PasswordExpiringControl
java.lang.Object
com.unboundid.ldap.sdk.Control
com.unboundid.ldap.sdk.controls.PasswordExpiringControl
- All Implemented Interfaces:
DecodeableControl,Serializable
@NotMutable
@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class PasswordExpiringControl
extends Control
implements DecodeableControl
This class provides an implementation of the expiring expiring control as
described in draft-vchu-ldap-pwd-policy. It may be used to indicate that the
authenticated user's password will expire in the near future. The value of
this control includes the length of time in seconds until the user's
password actually expires.
No request control is required to trigger the server to send the password expiring response control. If the server supports the use of this control and the user's password will expire within a time frame that the server considers to be the near future, then it will be included in the bind response returned to the client.
See the documentation for the
No request control is required to trigger the server to send the password expiring response control. If the server supports the use of this control and the user's password will expire within a time frame that the server considers to be the near future, then it will be included in the bind response returned to the client.
See the documentation for the
PasswordExpiredControl to see an
example that demonstrates the use of both the password expiring and password
expired controls.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe OID (2.16.840.1.113730.3.4.5) for the password expiring response control. -
Constructor Summary
ConstructorsConstructorDescriptionPasswordExpiringControl(int secondsUntilExpiration) Creates a new password expiring control with the provided information.PasswordExpiringControl(String oid, boolean isCritical, ASN1OctetString value) Creates a new password expiring control with the provided information. -
Method Summary
Modifier and TypeMethodDescriptiondecodeControl(String oid, boolean isCritical, ASN1OctetString value) Creates a new instance of this decodeable control from the provided information.static PasswordExpiringControldecodeJSONControl(JSONObject controlObject, boolean strict) Attempts to decode the provided object as a JSON representation of a password expiring control.static PasswordExpiringControlget(LDAPResult result) Extracts a password expiring control from the provided result.Retrieves the user-friendly name for this control, if available.intRetrieves the length of time in seconds until the password expires.Retrieves a representation of this password expiring control as a JSON object.voidtoString(StringBuilder buffer) Appends a string representation of this LDAP control to the provided buffer.Methods inherited from class com.unboundid.ldap.sdk.Control
decode, decode, decodeControls, decodeJSONControl, deregisterDecodeableControl, encode, encodeControls, equals, getOID, getValue, hashCode, hasValue, isCritical, readFrom, registerDecodeableControl, registerDecodeableControl, toString, writeTo
-
Field Details
-
PASSWORD_EXPIRING_OID
The OID (2.16.840.1.113730.3.4.5) for the password expiring response control.- See Also:
-
-
Constructor Details
-
PasswordExpiringControl
Creates a new password expiring control with the provided information.- Parameters:
secondsUntilExpiration- The length of time in seconds until the password expires.
-
PasswordExpiringControl
public PasswordExpiringControl(@NotNull String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException Creates a new password expiring control with the provided information.- Parameters:
oid- The OID for the control.isCritical- Indicates whether the control should be marked critical.value- The encoded value for the control. This may benullif no value was provided.- Throws:
LDAPException- If the provided control cannot be decoded as a password expiring response control.
-
-
Method Details
-
decodeControl
@NotNull public PasswordExpiringControl decodeControl(@NotNull String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException Creates a new instance of this decodeable control from the provided information.- Specified by:
decodeControlin interfaceDecodeableControl- Parameters:
oid- The OID for the control.isCritical- Indicates whether the control should be marked critical.value- The encoded value for the control. This may benullif no value was provided.- Returns:
- The decoded representation of this control.
- Throws:
LDAPException- If the provided information cannot be decoded as a valid instance of this decodeable control.
-
get
@Nullable public static PasswordExpiringControl get(@NotNull LDAPResult result) throws LDAPException Extracts a password expiring control from the provided result.- Parameters:
result- The result from which to retrieve the password expiring control.- Returns:
- The password expiring control contained in the provided result, or
nullif the result did not contain a password expiring control. - Throws:
LDAPException- If a problem is encountered while attempting to decode the password expiring control contained in the provided result.
-
getSecondsUntilExpiration
Retrieves the length of time in seconds until the password expires.- Returns:
- The length of time in seconds until the password expires.
-
getControlName
Retrieves the user-friendly name for this control, if available. If no user-friendly name has been defined, then the OID will be returned.- Overrides:
getControlNamein classControl- Returns:
- The user-friendly name for this control, or the OID if no user-friendly name is available.
-
toJSONControl
Retrieves a representation of this password expiring control as a JSON object. The JSON object uses the following fields:-
oid-- A mandatory string field whose value is the object identifier for this control. For the password expiring control, the OID is "2.16.840.1.113730.3.4.5". -
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, theoidfield 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 expiring control. Exactly one of thevalue-base64andvalue-jsonfields must be present. -
value-json-- An optional JSON object field whose value is a user-friendly representation of the value for this password expiring control. Exactly one of thevalue-base64andvalue-jsonfields must be present, and if thevalue-jsonfield is used, then it will use the following fields:-
seconds-until-expiration-- An integer field whose value is the number of seconds until the user's password expires.
-
- Overrides:
toJSONControlin classControl- Returns:
- A JSON object that contains a representation of this control.
-
-
decodeJSONControl
@NotNull public static PasswordExpiringControl decodeJSONControl(@NotNull JSONObject controlObject, boolean strict) throws LDAPException Attempts to decode the provided object as a JSON representation of a password expiring control.- Parameters:
controlObject- The JSON object to be decoded. It must not benull.strict- Indicates whether to use strict mode when decoding the provided JSON object. If this istrue, then this method will throw an exception if the provided JSON object contains any unrecognized fields. If this isfalse, then unrecognized fields will be ignored.- Returns:
- The password expiring control that was decoded from the provided JSON object.
- Throws:
LDAPException- If the provided JSON object cannot be parsed as a valid password expiring control.
-
toString
Appends a string representation of this LDAP control to the provided buffer.
-