com.unboundid.ldap.sdk
Class PasswordExpirationLDAPConnectionPoolHealthCheck

java.lang.Object
  extended by com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck
      extended by com.unboundid.ldap.sdk.PasswordExpirationLDAPConnectionPoolHealthCheck

@ThreadSafety(level=COMPLETELY_THREADSAFE)
public final class PasswordExpirationLDAPConnectionPoolHealthCheck
extends LDAPConnectionPoolHealthCheck

This class provides an 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 Summary
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.
 
Method Summary
 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.
 
Methods inherited from class com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck
ensureConnectionValidAfterException, ensureConnectionValidForCheckout, ensureConnectionValidForContinuedUse, ensureConnectionValidForRelease, ensureNewConnectionValid, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PasswordExpirationLDAPConnectionPoolHealthCheck

public PasswordExpirationLDAPConnectionPoolHealthCheck()
Creates a new instance of this health check that will throw an exception for any password policy-related warnings or errors encountered.


PasswordExpirationLDAPConnectionPoolHealthCheck

public 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. 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.

Parameters:
outputStream - The output stream to which a warning message should be written.

PasswordExpirationLDAPConnectionPoolHealthCheck

public 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. 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.

Parameters:
writer - The writer to which a warning message should be written.

PasswordExpirationLDAPConnectionPoolHealthCheck

public 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. It may write or suppress some or all subsequent warnings. It will throw an exception for any password-policy related errors encountered.

Parameters:
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.

PasswordExpirationLDAPConnectionPoolHealthCheck

public 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. It may write or suppress some or all subsequent warnings. It will throw an exception for any password-policy related errors encountered.

Parameters:
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.
Method Detail

ensureConnectionValidAfterAuthentication

public void ensureConnectionValidAfterAuthentication(LDAPConnection connection,
                                                     BindResult bindResult)
                                              throws LDAPException
Performs any desired processing to determine whether the provided connection is valid after processing a bind operation with the provided result.

This method will be invoked under the following circumstances:

Note that this health check method may be invoked even if the bind attempt was not successful. This is useful because it allows the health check to intercept a failed authentication attempt and differentiate it from other types of failures in the course of trying to create or check out a connection. In the event that it is invoked with a 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.

Overrides:
ensureConnectionValidAfterAuthentication in class LDAPConnectionPoolHealthCheck
Parameters:
connection - The connection to be examined.
bindResult - The bind result obtained from the authentication process.
Throws:
LDAPException - If a problem is detected that suggests that the provided connection is not suitable for use.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this LDAP connection pool health check to the provided buffer.

Overrides:
toString in class LDAPConnectionPoolHealthCheck
Parameters:
buffer - The buffer to which the information should be appended.