@ThreadSafety(level=COMPLETELY_THREADSAFE) public final class PasswordExpirationLDAPConnectionPoolHealthCheck extends LDAPConnectionPoolHealthCheck
LDAPConnectionPoolHealthCheck
implementation
that may be used to output a warning message about a password expiration that
has occurred or is about to occur. It examines a bind result to see if it
includes a PasswordExpiringControl
, a PasswordExpiredControl
,
or a DraftBeheraLDAPPasswordPolicy10ResponseControl
that might
indicate that the user's password is about to expire, has already expired, or
is in a state that requires the user to change the password before they will
be allowed to perform any other operation. In the event of a warning about
an upcoming problem, the health check may write a message to a given
OutputStream
or Writer
. In the event of a problem that will
interfere with connection use, it will throw an exception to indicate that
the connection is not valid.Constructor and Description |
---|
PasswordExpirationLDAPConnectionPoolHealthCheck()
Creates a new instance of this health check that will throw an exception
for any password policy-related warnings or errors encountered.
|
PasswordExpirationLDAPConnectionPoolHealthCheck(java.io.OutputStream outputStream)
Creates a new instance of this health check that will write any password
policy-related warning message to the provided
OutputStream . |
PasswordExpirationLDAPConnectionPoolHealthCheck(java.io.OutputStream outputStream,
java.lang.Long millisBetweenRepeatWarnings)
Creates a new instance of this health check that will write any password
policy-related warning messages to the provided
OutputStream . |
PasswordExpirationLDAPConnectionPoolHealthCheck(java.io.Writer writer)
Creates a new instance of this health check that will write any password
policy-related warning message to the provided
Writer . |
PasswordExpirationLDAPConnectionPoolHealthCheck(java.io.Writer writer,
java.lang.Long millisBetweenRepeatWarnings)
Creates a new instance of this health check that will write any password
policy-related warning messages to the provided
OutputStream . |
Modifier and Type | Method and Description |
---|---|
void |
ensureConnectionValidAfterAuthentication(LDAPConnection connection,
BindResult bindResult)
Performs any desired processing to determine whether the provided
connection is valid after processing a bind operation with the provided
result.
|
void |
toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP connection pool health check
to the provided buffer.
|
ensureConnectionValidAfterException, ensureConnectionValidForCheckout, ensureConnectionValidForContinuedUse, ensureConnectionValidForRelease, ensureNewConnectionValid, performPoolMaintenance, toString
public PasswordExpirationLDAPConnectionPoolHealthCheck()
public PasswordExpirationLDAPConnectionPoolHealthCheck(@Nullable java.io.OutputStream outputStream)
OutputStream
. It
will only write the first warning and will suppress all subsequent
warnings. It will throw an exception for any password policy-related
errors encountered.outputStream
- The output stream to which a warning message should
be written.public PasswordExpirationLDAPConnectionPoolHealthCheck(@Nullable java.io.Writer writer)
Writer
. It will
only write the first warning and will suppress all subsequent warnings. It
will throw an exception for any password policy-related errors encountered.writer
- The writer to which a warning message should be written.public PasswordExpirationLDAPConnectionPoolHealthCheck(@Nullable java.io.OutputStream outputStream, @Nullable java.lang.Long millisBetweenRepeatWarnings)
OutputStream
. It
may write or suppress some or all subsequent warnings. It will throw an
exception for any password-policy related errors encountered.outputStream
- The output stream to which warning
messages should be written.millisBetweenRepeatWarnings
- The minimum length of time in
milliseconds that should be allowed to
elapse between repeat warning
messages. A value that is less than
or equal to zero indicates that all
warning messages should always be
written. A positive value indicates
that some warning messages may be
suppressed if they are encountered too
soon after writing a previous warning.
A value of null
indicates that
only the first warning message should
be written and all subsequent warnings
should be suppressed.public PasswordExpirationLDAPConnectionPoolHealthCheck(@Nullable java.io.Writer writer, @Nullable java.lang.Long millisBetweenRepeatWarnings)
OutputStream
. It
may write or suppress some or all subsequent warnings. It will throw an
exception for any password-policy related errors encountered.writer
- The writer to which warning messages
should be written.millisBetweenRepeatWarnings
- The minimum length of time in
milliseconds that should be allowed to
elapse between repeat warning
messages. A value that is less than
or equal to zero indicates that all
warning messages should always be
written. A positive value indicates
that some warning messages may be
suppressed if they are encountered too
soon after writing a previous warning.
A value of null
indicates that
only the first warning message should
be written and all subsequent warnings
should be suppressed.public void ensureConnectionValidAfterAuthentication(@NotNull LDAPConnection connection, @NotNull BindResult bindResult) throws LDAPException
ServerSet
and a
non-null
BindRequest
, then this health check method
will be invoked for every new connection created by the pool after
processing that BindRequest
on the connection. If you create a
connection pool with a ServerSet
but a null
BindRequest
, then no authentication will be attempted (and
therefore this health check method will not be invoked for)
newly-created connections.
LDAPConnection
after
having performed a bind operation on that connection, then every new
connection created by the pool will attempt to perform the same type of
bind operation and this health check method will be invoked after that
bind attempt has completed. If you create a connection pool with an
LDAPConnection
that has not been authenticated, then no
authentication will be attempted (and therefore this health check
method will not be invoked for) newly-created connections.
bindAndRevertAuthentication
method, then this health check method will be called after the second
bind operation (the one used to revert authentication) has completed.
In this case, this health check method will be called even if the
connection pool was created with a null
BindRequest
or
with an unauthenticated LDAPConnection
. In that case, the
bind operation used to revert authentication will be a
SimpleBindRequest
with an empty DN and password.
releaseAndReAuthenticateConnection
method, then this health
check method will be called after the bind operation has completed. As
with bindAndRevertAuthentication
, this health check method will
be called even if the connection pool was created with a null
BindRequest
or with an unauthenticated LDAPConnection
.
BindResult
that has a result code other than ResultCode.SUCCESS
, if this
method throws an exception then that exception will be propagated to the
caller. If this method does not throw an exception when provided with a
non-SUCCESS
result, then the connection pool itself will throw an
exception using the information in the bind result.ensureConnectionValidAfterAuthentication
in class LDAPConnectionPoolHealthCheck
connection
- The connection to be examined.bindResult
- The bind result obtained from the authentication
process.LDAPException
- If a problem is detected that suggests that the
provided connection is not suitable for use.public void toString(@NotNull java.lang.StringBuilder buffer)
toString
in class LDAPConnectionPoolHealthCheck
buffer
- The buffer to which the information should be appended.