Package com.unboundid.ldap.listener
Class StartTLSRequestHandler
- java.lang.Object
-
- com.unboundid.ldap.listener.LDAPListenerRequestHandler
-
- com.unboundid.ldap.listener.StartTLSRequestHandler
-
@ThreadSafety(level=NOT_THREADSAFE) public final class StartTLSRequestHandler extends LDAPListenerRequestHandler
This class provides a request handler implementation that can be used to convert an existing connection to use TLS encryption. It will handle StartTLS extended operations directly, but will pass all other requests and responses through to another request handler.
-
-
Constructor Summary
Constructors Constructor Description StartTLSRequestHandler(javax.net.ssl.SSLSocketFactory sslSocketFactory, LDAPListenerRequestHandler requestHandler)Creates a new StartTLS request handler with the provided information.StartTLSRequestHandler(javax.net.ssl.SSLSocketFactory sslSocketFactory, LDAPListenerRequestHandler requestHandler, boolean requestClientCertificate, boolean requireClientCertificate)Creates a new StartTLS request handler with the provided information.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseInstance()Indicates that the client connection with which this request handler instance is associated is being closed and any resources associated with it should be released.StartTLSRequestHandlernewInstance(LDAPListenerClientConnection connection)Creates a new instance of this request handler that will be used to process requests read by the provided connection.voidprocessAbandonRequest(int messageID, AbandonRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided abandon request.LDAPMessageprocessAddRequest(int messageID, AddRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided add request.LDAPMessageprocessBindRequest(int messageID, BindRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided bind request.LDAPMessageprocessCompareRequest(int messageID, CompareRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided compare request.LDAPMessageprocessDeleteRequest(int messageID, DeleteRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided delete request.LDAPMessageprocessExtendedRequest(int messageID, ExtendedRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided extended request.LDAPMessageprocessModifyDNRequest(int messageID, ModifyDNRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided modify DN request.LDAPMessageprocessModifyRequest(int messageID, ModifyRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided modify request.LDAPMessageprocessSearchRequest(int messageID, SearchRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided search request.voidprocessUnbindRequest(int messageID, UnbindRequestProtocolOp request, java.util.List<Control> controls)Performs any processing necessary for the provided unbind request.
-
-
-
Constructor Detail
-
StartTLSRequestHandler
public StartTLSRequestHandler(@NotNull javax.net.ssl.SSLSocketFactory sslSocketFactory, @NotNull LDAPListenerRequestHandler requestHandler)
Creates a new StartTLS request handler with the provided information.- Parameters:
sslSocketFactory- The SSL socket factory that will be used to convert the existing socket to use SSL encryption.requestHandler- The request handler that will be used to process all operations except StartTLS extended operations.
-
StartTLSRequestHandler
public StartTLSRequestHandler(@NotNull javax.net.ssl.SSLSocketFactory sslSocketFactory, @NotNull LDAPListenerRequestHandler requestHandler, boolean requestClientCertificate, boolean requireClientCertificate)
Creates a new StartTLS request handler with the provided information.- Parameters:
sslSocketFactory- The SSL socket factory that will be used to convert the existing socket to use SSL encryption.requestHandler- The request handler that will be used to process all operations except StartTLS extended operations.requestClientCertificate- Indicates whether the listener should request that the client present its own certificate chain during TLS negotiation. This will be ignored for non-TLS-based connections.requireClientCertificate- Indicates whether the listener should require that the client present its own certificate chain during TLS negotiation, and should fail negotiation if the client does not present one. This will be ignored for non-TLS-based connections or ifrequestClientCertificateisfalse.
-
-
Method Detail
-
newInstance
@NotNull public StartTLSRequestHandler newInstance(@NotNull LDAPListenerClientConnection connection) throws LDAPException
Creates a new instance of this request handler that will be used to process requests read by the provided connection.- Specified by:
newInstancein classLDAPListenerRequestHandler- Parameters:
connection- The connection with which this request handler instance will be associated.- Returns:
- The request handler instance that will be used for the provided connection.
- Throws:
LDAPException- If the connection should not be accepted.
-
closeInstance
public void closeInstance()
Indicates that the client connection with which this request handler instance is associated is being closed and any resources associated with it should be released.- Overrides:
closeInstancein classLDAPListenerRequestHandler
-
processAbandonRequest
public void processAbandonRequest(int messageID, @NotNull AbandonRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided abandon request.- Overrides:
processAbandonRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the abandon request.request- The abandon request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.
-
processAddRequest
@NotNull public LDAPMessage processAddRequest(int messageID, @NotNull AddRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided add request.- Specified by:
processAddRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the add request.request- The add request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be anAddResponseProtocolOp.
-
processBindRequest
@NotNull public LDAPMessage processBindRequest(int messageID, @NotNull BindRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided bind request.- Specified by:
processBindRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the bind request.request- The bind request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be aBindResponseProtocolOp.
-
processCompareRequest
@NotNull public LDAPMessage processCompareRequest(int messageID, @NotNull CompareRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided compare request.- Specified by:
processCompareRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the compare request.request- The compare request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be aCompareResponseProtocolOp.
-
processDeleteRequest
@NotNull public LDAPMessage processDeleteRequest(int messageID, @NotNull DeleteRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided delete request.- Specified by:
processDeleteRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the delete request.request- The delete request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be aDeleteResponseProtocolOp.
-
processExtendedRequest
@NotNull public LDAPMessage processExtendedRequest(int messageID, @NotNull ExtendedRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided extended request.- Specified by:
processExtendedRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the extended request.request- The extended request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be anExtendedResponseProtocolOp.
-
processModifyRequest
@NotNull public LDAPMessage processModifyRequest(int messageID, @NotNull ModifyRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided modify request.- Specified by:
processModifyRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the modify request.request- The modify request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be anModifyResponseProtocolOp.
-
processModifyDNRequest
@NotNull public LDAPMessage processModifyDNRequest(int messageID, @NotNull ModifyDNRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided modify DN request.- Specified by:
processModifyDNRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the modify DN request.request- The modify DN request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be anModifyDNResponseProtocolOp.
-
processSearchRequest
@NotNull public LDAPMessage processSearchRequest(int messageID, @NotNull SearchRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided search request.- Specified by:
processSearchRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the search request.request- The search request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.- Returns:
- The
LDAPMessagecontaining the response to send to the client. The protocol op in theLDAPMessagemust be anSearchResultDoneProtocolOp.
-
processUnbindRequest
public void processUnbindRequest(int messageID, @NotNull UnbindRequestProtocolOp request, @NotNull java.util.List<Control> controls)
Performs any processing necessary for the provided unbind request.- Overrides:
processUnbindRequestin classLDAPListenerRequestHandler- Parameters:
messageID- The message ID of the LDAP message containing the search request.request- The search request that was included in the LDAP message that was received.controls- The set of controls included in the LDAP message. It may be empty if there were no controls, but will not benull.
-
-