Class JmxClientConnection

    • Field Detail

      • jmxConnectionID

        protected String jmxConnectionID
        The JMX connection ID for this client connection.
    • Constructor Detail

      • JmxClientConnection

        public JmxClientConnection​(JmxConnectionHandler jmxConnectionHandler,
                                   AuthenticationInfo authInfo)
        Creates a new Jmx client connection that will be authenticated as as the specified user.
        Parameters:
        jmxConnectionHandler - The connection handler on which we should be registered
        authInfo - the User authentication info
    • Method Detail

      • nextOperationID

        public long nextOperationID()
        Retrieves the operation ID that should be used for the next Jmx operation.
        Returns:
        The operation ID that should be used for the next Jmx operation.
      • nextMessageID

        public int nextMessageID()
        Retrieves the message ID that should be used for the next Jmx operation.
        Returns:
        The message ID that should be used for the next Jmx operation.
      • getConnectionID

        public long getConnectionID()
        Retrieves the unique identifier that has been assigned to this connection.
        Specified by:
        getConnectionID in class ClientConnection
        Returns:
        The unique identifier that has been assigned to this connection.
      • getConnectionHandler

        public ConnectionHandler<?> getConnectionHandler()
        Retrieves the connection handler that accepted this client connection.
        Specified by:
        getConnectionHandler in class ClientConnection
        Returns:
        The connection handler that accepted this client connection.
      • getProtocol

        public String getProtocol()
        Retrieves the protocol that the client is using to communicate with the Directory Server.
        Specified by:
        getProtocol in class ClientConnection
        Returns:
        The protocol that the client is using to communicate with the Directory Server.
      • getClientAddress

        public String getClientAddress()
        Retrieves a string representation of the address of the client.
        Specified by:
        getClientAddress in class ClientConnection
        Returns:
        A string representation of the address of the client.
      • getClientPort

        public int getClientPort()
        Retrieves the port number for this connection on the client system.
        Specified by:
        getClientPort in class ClientConnection
        Returns:
        The port number for this connection on the client system.
      • getServerAddress

        public String getServerAddress()
        Retrieves a string representation of the address on the server to which the client connected.
        Specified by:
        getServerAddress in class ClientConnection
        Returns:
        A string representation of the address on the server to which the client connected.
      • getServerPort

        public int getServerPort()
        Retrieves the port number for this connection on the server system if available.
        Specified by:
        getServerPort in class ClientConnection
        Returns:
        The port number for this connection on the server system or -1 if there is no server port associated with this connection (e.g. internal client).
      • getRemoteAddress

        public InetAddress getRemoteAddress()
        Retrieves the java.net.InetAddress associated with the remote client system.
        Specified by:
        getRemoteAddress in class ClientConnection
        Returns:
        The java.net.InetAddress associated with the remote client system. It may be null if the client is not connected over an IP-based connection.
      • getLocalAddress

        public InetAddress getLocalAddress()
        Retrieves the java.net.InetAddress for the Directory Server system to which the client has established the connection.
        Specified by:
        getLocalAddress in class ClientConnection
        Returns:
        The java.net.InetAddress for the Directory Server system to which the client has established the connection. It may be null if the client is not connected over an IP-based connection.
      • isConnectionValid

        public boolean isConnectionValid()
        Returns whether the Directory Server believes this connection to be valid and available for communication.
        Specified by:
        isConnectionValid in class ClientConnection
        Returns:
        true if the connection is valid, false otherwise
      • isSecure

        public boolean isSecure()
        Indicates whether this client connection is currently using a secure mechanism to communicate with the server. Note that this may change over time based on operations performed by the client or server (e.g., it may go from false to true if the client uses the StartTLS extended operation).
        Specified by:
        isSecure in class ClientConnection
        Returns:
        true if the client connection is currently using a secure mechanism to communicate with the server, or false if not.
      • getSecurityMechanism

        public String getSecurityMechanism()
        Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.
        Returns:
        The human-readable name of the security mechanism that is used to protect communication with this client, or null if no security is in place.
      • sendResponse

        public void sendResponse​(Operation operation)
        Sends a response to the client based on the information in the provided operation.
        Specified by:
        sendResponse in class ClientConnection
        Parameters:
        operation - The operation for which to send the response.
      • processSearch

        public InternalSearchOperation processSearch​(SearchRequest request)
        Processes an Jmx search operation with the provided information.
        Parameters:
        request - The search request.
        Returns:
        A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
      • sendSearchEntry

        public void sendSearchEntry​(SearchOperation searchOperation,
                                    SearchResultEntry searchEntry)
                             throws DirectoryException
        Sends the provided search result entry to the client.
        Specified by:
        sendSearchEntry in class ClientConnection
        Parameters:
        searchOperation - The search operation with which the entry is associated.
        searchEntry - The search result entry to be sent to the client.
        Throws:
        DirectoryException - If a problem occurs while attempting to send the entry to the client and the search should be terminated.
      • sendSearchReference

        public boolean sendSearchReference​(SearchOperation searchOperation,
                                           SearchResultReference searchReference)
                                    throws DirectoryException
        Sends the provided search result reference to the client.
        Specified by:
        sendSearchReference in class ClientConnection
        Parameters:
        searchOperation - The search operation with which the reference is associated.
        searchReference - The search result reference to be sent to the client.
        Returns:
        true if the client is able to accept referrals, or false if the client cannot handle referrals and no more attempts should be made to send them for the associated search operation.
        Throws:
        DirectoryException - If a problem occurs while attempting to send the reference to the client and the search should be terminated.
      • sendIntermediateResponseMessage

        protected boolean sendIntermediateResponseMessage​(IntermediateResponse intermediateResponse)
        Sends the provided intermediate response message to the client.
        Specified by:
        sendIntermediateResponseMessage in class ClientConnection
        Parameters:
        intermediateResponse - The intermediate response message to be sent.
        Returns:
        true if processing on the associated operation should continue, or false if not.
      • disconnect

        public void disconnect​(DisconnectReason disconnectReason,
                               boolean sendNotification,
                               org.forgerock.i18n.LocalizableMessage message)
        Closes the connection to the client, optionally sending it a message indicating the reason for the closure. Note that the ability to send a notice of disconnection may not be available for all protocols or under all circumstances.
        Specified by:
        disconnect in class ClientConnection
        Parameters:
        disconnectReason - The disconnect reason that provides the generic cause for the disconnect.
        sendNotification - Indicates whether to try to provide notification to the client that the connection will be closed.
        message - The message to send to the client. It may be null if no notification is to be sent.
      • getOperationsInProgress

        public Collection<Operation> getOperationsInProgress()
        Retrieves the set of operations in progress for this client connection. This list must not be altered by any caller.
        Specified by:
        getOperationsInProgress in class ClientConnection
        Returns:
        The set of operations in progress for this client connection.
      • getOperationInProgress

        public Operation getOperationInProgress​(int messageID)
        Retrieves the operation in progress with the specified message ID.
        Specified by:
        getOperationInProgress in class ClientConnection
        Parameters:
        messageID - The message ID of the operation to retrieve.
        Returns:
        The operation in progress with the specified message ID, or null if no such operation could be found.
      • removeOperationInProgress

        public boolean removeOperationInProgress​(int messageID)
        Removes the provided operation from the set of operations in progress for this client connection. Note that this does not make any attempt to cancel any processing that may already be in progress for the operation.
        Specified by:
        removeOperationInProgress in class ClientConnection
        Parameters:
        messageID - The message ID of the operation to remove from the set of operations in progress.
        Returns:
        true if the operation was found and removed from the set of operations in progress, or false if not.
      • cancelOperation

        public CancelResult cancelOperation​(int messageID,
                                            CancelRequest cancelRequest)
        Attempts to cancel the specified operation.
        Specified by:
        cancelOperation in class ClientConnection
        Parameters:
        messageID - The message ID of the operation to cancel.
        cancelRequest - An object providing additional information about how the cancel should be processed.
        Returns:
        A cancel result that either indicates that the cancel was successful or provides a reason that it was not.
      • cancelAllOperations

        public void cancelAllOperations​(CancelRequest cancelRequest)
        Attempts to cancel all operations in progress on this connection.
        Specified by:
        cancelAllOperations in class ClientConnection
        Parameters:
        cancelRequest - An object providing additional information about how the cancel should be processed.
      • cancelAllOperationsExcept

        public void cancelAllOperationsExcept​(CancelRequest cancelRequest,
                                              int messageID)
        Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.
        Specified by:
        cancelAllOperationsExcept in class ClientConnection
        Parameters:
        cancelRequest - An object providing additional information about how the cancel should be processed.
        messageID - The message ID of the operation that should not be canceled.
      • getMonitorSummary

        public String getMonitorSummary()
        Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler. It should be in a format that is both humand readable and machine parseable (e.g., a space-delimited name-value list, with quotes around the values).
        Specified by:
        getMonitorSummary in class ClientConnection
        Returns:
        A one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.
      • toString

        public void toString​(StringBuilder buffer)
        Appends a string representation of this client connection to the provided buffer.
        Specified by:
        toString in class ClientConnection
        Parameters:
        buffer - The buffer to which the information should be appended.
      • finalize

        protected void finalize()
        Called by the Gc when the object is garbage collected Release the cursor in case the iterator was badly used and releaseCursor was never called.
        Overrides:
        finalize in class Object
      • getNumberOfOperations

        public long getNumberOfOperations()
        To be implemented.
        Specified by:
        getNumberOfOperations in class ClientConnection
        Returns:
        number of operations performed on this connection
      • getSSF

        public int getSSF()
        Return the Security Strength Factor of a client connection.
        Specified by:
        getSSF in class ClientConnection
        Returns:
        An integer representing the SSF value of a connection.