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
,java.io.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 thePasswordExpiredControl
to see an example that demonstrates the use of both the password expiring and password expired controls.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PASSWORD_EXPIRING_OID
The OID (2.16.840.1.113730.3.4.5) for the password expiring response control.
-
Constructor Summary
Constructors Constructor Description PasswordExpiringControl(int secondsUntilExpiration)
Creates a new password expiring control with the provided information.PasswordExpiringControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new password expiring control with the provided information.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PasswordExpiringControl
decodeControl(java.lang.String oid, boolean isCritical, ASN1OctetString value)
Creates a new instance of this decodeable control from the provided information.static PasswordExpiringControl
decodeJSONControl(JSONObject controlObject, boolean strict)
Attempts to decode the provided object as a JSON representation of a password expiring control.static PasswordExpiringControl
get(LDAPResult result)
Extracts a password expiring control from the provided result.java.lang.String
getControlName()
Retrieves the user-friendly name for this control, if available.int
getSecondsUntilExpiration()
Retrieves the length of time in seconds until the password expires.JSONObject
toJSONControl()
Retrieves a representation of this password expiring control as a JSON object.void
toString(java.lang.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 Detail
-
PASSWORD_EXPIRING_OID
@NotNull public static final java.lang.String PASSWORD_EXPIRING_OID
The OID (2.16.840.1.113730.3.4.5) for the password expiring response control.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PasswordExpiringControl
public PasswordExpiringControl(int secondsUntilExpiration)
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 java.lang.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 benull
if no value was provided.- Throws:
LDAPException
- If the provided control cannot be decoded as a password expiring response control.
-
-
Method Detail
-
decodeControl
@NotNull public PasswordExpiringControl decodeControl(@NotNull java.lang.String oid, boolean isCritical, @Nullable ASN1OctetString value) throws LDAPException
Creates a new instance of this decodeable control from the provided information.- Specified by:
decodeControl
in 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 benull
if 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
null
if 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
public int getSecondsUntilExpiration()
Retrieves the length of time in seconds until the password expires.- Returns:
- The length of time in seconds until the password expires.
-
getControlName
@NotNull public java.lang.String 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:
getControlName
in classControl
- Returns:
- The user-friendly name for this control, or the OID if no user-friendly name is available.
-
toJSONControl
@NotNull public JSONObject 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, theoid
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 expiring control. Exactly one of thevalue-base64
andvalue-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 expiring control. Exactly one of thevalue-base64
andvalue-json
fields must be present, and if thevalue-json
field 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:
toJSONControl
in 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.
-
-