Package com.unboundid.ldap.sdk
Class StartTLSPostConnectProcessor
- java.lang.Object
-
- com.unboundid.ldap.sdk.StartTLSPostConnectProcessor
-
- All Implemented Interfaces:
PostConnectProcessor
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class StartTLSPostConnectProcessor extends java.lang.Object implements PostConnectProcessor
This class provides an implementation of a post-connect processor that can be used to perform StartTLS negotiation on an LDAP connection that is intended to be used in a connection pool.
Example
The following example demonstrates the use of the StartTLS post-connect processor to create an LDAP connection pool whose connections are secured using StartTLS:// Configure an SSLUtil instance and use it to obtain an SSLContext. SSLUtil sslUtil = new SSLUtil(new TrustStoreTrustManager(trustStorePath)); SSLContext sslContext = sslUtil.createSSLContext(); // Establish an insecure connection to the directory server. LDAPConnection connection = new LDAPConnection(serverAddress, nonSSLPort); // Use the StartTLS extended operation to secure the connection. ExtendedResult startTLSResult = connection.processExtendedOperation( new StartTLSExtendedRequest(sslContext)); // Create a connection pool that will secure its connections with StartTLS. BindResult bindResult = connection.bind( "uid=john.doe,ou=People,dc=example,dc=com", "password"); StartTLSPostConnectProcessor startTLSProcessor = new StartTLSPostConnectProcessor(sslContext); LDAPConnectionPool pool = new LDAPConnectionPool(connection, 1, 10, startTLSProcessor); // Verify that we can use the pool to communicate with the directory server. RootDSE rootDSE = pool.getRootDSE(); // Close the connection pool. pool.close();
-
-
Constructor Summary
Constructors Constructor Description StartTLSPostConnectProcessor(javax.net.ssl.SSLContext sslContext)
Creates a new instance of this StartTLS post-connect processor that will use the provided SSL context.StartTLSPostConnectProcessor(javax.net.ssl.SSLSocketFactory sslSocketFactory)
Creates a new instance of this StartTLS post-connect processor that will use the provided SSL context.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
processPostAuthenticatedConnection(LDAPConnection connection)
Performs any appropriate processing on the provided connection before making it available for use in a connection pool.void
processPreAuthenticatedConnection(LDAPConnection connection)
Performs any appropriate processing on the provided connection before making it available for use in a connection pool.
-
-
-
Constructor Detail
-
StartTLSPostConnectProcessor
public StartTLSPostConnectProcessor(@NotNull javax.net.ssl.SSLContext sslContext)
Creates a new instance of this StartTLS post-connect processor that will use the provided SSL context.- Parameters:
sslContext
- The SSL context to use to perform the StartTLS negotiation. It must not benull
.
-
StartTLSPostConnectProcessor
public StartTLSPostConnectProcessor(@NotNull javax.net.ssl.SSLSocketFactory sslSocketFactory)
Creates a new instance of this StartTLS post-connect processor that will use the provided SSL context.- Parameters:
sslSocketFactory
- The SSL socket factory to use to create the TLS-secured socket. It must not benull
.
-
-
Method Detail
-
processPreAuthenticatedConnection
public void processPreAuthenticatedConnection(@NotNull LDAPConnection connection) throws LDAPException
Performs any appropriate processing on the provided connection before making it available for use in a connection pool. This method will be invoked immediately after the connection has been established but before any attempt has been made to perform any authentication.- Specified by:
processPreAuthenticatedConnection
in interfacePostConnectProcessor
- Parameters:
connection
- The connection for which the processing is to be performed.- Throws:
LDAPException
- If a problem occurs during processing. If an exception is thrown, then the connection will be terminated and not used in the pool.
-
processPostAuthenticatedConnection
public void processPostAuthenticatedConnection(@NotNull LDAPConnection connection) throws LDAPException
Performs any appropriate processing on the provided connection before making it available for use in a connection pool. This method will be invoked immediately after any appropriate authentication has been performed on the connection.- Specified by:
processPostAuthenticatedConnection
in interfacePostConnectProcessor
- Parameters:
connection
- The connection for which the processing is to be performed.- Throws:
LDAPException
- If a problem occurs during processing. If an exception is thrown, then the connection will be terminated and not used in the pool.
-
-