Class ReportBindResultLDAPConnectionPoolHealthCheck
- java.lang.Object
-
- com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck
-
- com.unboundid.ldap.sdk.unboundidds.tools.ReportBindResultLDAPConnectionPoolHealthCheck
-
@ThreadSafety(level=COMPLETELY_THREADSAFE) public final class ReportBindResultLDAPConnectionPoolHealthCheck extends LDAPConnectionPoolHealthCheck
This class provides an implementation of a connection pool health check that can display information about the result of a bind operation. It will always report information about an unsuccessful bind. It may optionally report information about a successful bind, and optionally only if the successful bind includes one or more response controls.
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.
Note that this health check is only intended to generate output when appropriate and will never throw an exception to indicate that a connection is unusable. If additional health checking is required, then this health check may be combined with others via an aggregate health check in a manner that ensures this health check will be invoked before any others that may throw an exception.
-
-
Constructor Summary
Constructors Constructor Description ReportBindResultLDAPConnectionPoolHealthCheck(CommandLineTool tool, boolean displaySuccessResultWithControls, boolean displaySuccessResultWithoutControls)
Creates a new instance of this health check with the provided information.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.-
Methods inherited from class com.unboundid.ldap.sdk.LDAPConnectionPoolHealthCheck
ensureConnectionValidAfterException, ensureConnectionValidForCheckout, ensureConnectionValidForContinuedUse, ensureConnectionValidForRelease, ensureNewConnectionValid, performPoolMaintenance, toString
-
-
-
-
Constructor Detail
-
ReportBindResultLDAPConnectionPoolHealthCheck
public ReportBindResultLDAPConnectionPoolHealthCheck(CommandLineTool tool, boolean displaySuccessResultWithControls, boolean displaySuccessResultWithoutControls)
Creates a new instance of this health check with the provided information.- Parameters:
tool
- The tool with which this health check is associated. Any success messages written will be sent to the tool's standard output stream. Any failure messages written will be sent to the tool's standard error stream.displaySuccessResultWithControls
- Indicates whether to display information about a bind result with a result code ofSUCCESS
that has one or more response controls.displaySuccessResultWithoutControls
- Indicates whether to display information about a bind result with a result code ofSUCCESS
that has no response controls.
-
-
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:-
If you create a connection pool with a
ServerSet
and a non-null
BindRequest
, then this health check method will be invoked for every new connection created by the pool after processing thatBindRequest
on the connection. If you create a connection pool with aServerSet
but anull
BindRequest
, then no authentication will be attempted (and therefore this health check method will not be invoked for) newly-created connections. -
If you create a connection pool with an
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 anLDAPConnection
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. -
If you call a connection pool's
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 anull
BindRequest
or with an unauthenticatedLDAPConnection
. In that case, the bind operation used to revert authentication will be aSimpleBindRequest
with an empty DN and password. -
If you call a connection pool's
releaseAndReAuthenticateConnection
method, then this health check method will be called after the bind operation has completed. As withbindAndRevertAuthentication
, this health check method will be called even if the connection pool was created with anull
BindRequest
or with an unauthenticatedLDAPConnection
.
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 aBindResult
that has a result code other thanResultCode.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 classLDAPConnectionPoolHealthCheck
- 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.
-
If you create a connection pool with a
-
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 classLDAPConnectionPoolHealthCheck
- Parameters:
buffer
- The buffer to which the information should be appended.
-
-