Package com.unboundid.ldap.listener
Class AccessLogRequestHandler
- java.lang.Object
-
- com.unboundid.ldap.listener.LDAPListenerRequestHandler
-
- com.unboundid.ldap.listener.AccessLogRequestHandler
-
- All Implemented Interfaces:
SearchEntryTransformer
@NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public final class AccessLogRequestHandler extends LDAPListenerRequestHandler implements SearchEntryTransformer
This class provides a request handler that may be used to log each request and result using the Java logging framework. It will be also be associated with another request handler that will actually be used to handle the request.
-
-
Constructor Summary
Constructors Constructor Description AccessLogRequestHandler(java.util.logging.Handler logHandler, LDAPListenerRequestHandler requestHandler)
Creates a new access log request handler that will log request and result messages using the provided log handler, and will process client requests using the provided request handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.AccessLogRequestHandler
newInstance(LDAPListenerClientConnection connection)
Creates a new instance of this request handler that will be used to process requests read by the provided connection.void
processAbandonRequest(int messageID, AbandonRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided abandon request.LDAPMessage
processAddRequest(int messageID, AddRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided add request.LDAPMessage
processBindRequest(int messageID, BindRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided bind request.LDAPMessage
processCompareRequest(int messageID, CompareRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided compare request.LDAPMessage
processDeleteRequest(int messageID, DeleteRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided delete request.LDAPMessage
processExtendedRequest(int messageID, ExtendedRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided extended request.LDAPMessage
processModifyDNRequest(int messageID, ModifyDNRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided modify DN request.LDAPMessage
processModifyRequest(int messageID, ModifyRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided modify request.LDAPMessage
processSearchRequest(int messageID, SearchRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided search request.void
processUnbindRequest(int messageID, UnbindRequestProtocolOp request, java.util.List<Control> controls)
Performs any processing necessary for the provided unbind request.ObjectPair<SearchResultEntryProtocolOp,Control[]>
transformEntry(int messageID, SearchResultEntryProtocolOp entry, Control[] controls)
Transforms the provided search result entry and/or set of controls to alter what will be returned to the client.
-
-
-
Constructor Detail
-
AccessLogRequestHandler
public AccessLogRequestHandler(@NotNull java.util.logging.Handler logHandler, @NotNull LDAPListenerRequestHandler requestHandler)
Creates a new access log request handler that will log request and result messages using the provided log handler, and will process client requests using the provided request handler.- Parameters:
logHandler
- The log handler that will be used to log request and result messages. Note that all messages will be logged at the INFO level. It must not benull
. Note that the log handler will not be automatically closed when the associated listener is shut down.requestHandler
- The request handler that will actually be used to process any requests received. It must not benull
.
-
-
Method Detail
-
newInstance
@NotNull public AccessLogRequestHandler 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:
newInstance
in 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:
closeInstance
in 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:
processAbandonRequest
in 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:
processAddRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processBindRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processCompareRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processDeleteRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processExtendedRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processModifyRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processModifyDNRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processSearchRequest
in 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
LDAPMessage
containing the response to send to the client. The protocol op in theLDAPMessage
must 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:
processUnbindRequest
in 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
.
-
transformEntry
@NotNull public ObjectPair<SearchResultEntryProtocolOp,Control[]> transformEntry(int messageID, @NotNull SearchResultEntryProtocolOp entry, @NotNull Control[] controls)
Transforms the provided search result entry and/or set of controls to alter what will be returned to the client.- Specified by:
transformEntry
in interfaceSearchEntryTransformer
- Parameters:
messageID
- The message ID for the associated search operation.entry
- The search result entry to be processed. It will not benull
.controls
- The set of controls to be processed. It will not benull
but may be empty if there are no controls.- Returns:
- An
ObjectPair
containing a possibly updated entry and set of controls, ornull
to indicate that the entry should not be returned to the client.
-
-