Class StartTLSPostConnectProcessor

java.lang.Object
com.unboundid.ldap.sdk.StartTLSPostConnectProcessor
All Implemented Interfaces:
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. See the Javadoc documentation for the SSLUtil class for a more complete explanation of the process for establishin secure connections.
 // 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.
 LDAPConnectionOptions connectionOptions = new LDAPConnectionOptions();
 connectionOptions.setSSLSocketVerifier(
      new HostNameSSLSocketVerifier(true));
 LDAPConnection connection =
      new LDAPConnection(connectionOptions, 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 Details

    • StartTLSPostConnectProcessor

      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 be null.
    • StartTLSPostConnectProcessor

      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 be null.
  • Method Details

    • processPreAuthenticatedConnection

      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 interface PostConnectProcessor
      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

      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 interface PostConnectProcessor
      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.