Interface AuditManager

All Known Implementing Classes:
AuditManagerImpl

public interface AuditManager
Manages and directs server message auditing behavior. Turning on all auditing options can produce copious amounts of data and significantly slow the server as it saves the data to persistent storage.

Auditing currently saves audit data to a raw XML file which can later be processed and mined for information.

Author:
Iain Shigeoka
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
     
    static final int
     
    static final int
     
    static final int
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addXPath(String xpathExpression)
    Adds an XPath expression to be used for filtering packets to be audited.
    Factory method for creating auditors that are configured by this audit manager.
    Returns the list of usernames that won't be audited.
    Returns the absolute path to the directory where the audit log files will be saved.
    Returns the time between successive executions of the task that will save the queued audited packets to a permanent store.
    int
    Obtain the maximum size of audit log files in megabytes.
    int
    Returns the maximum size in megabytes that all audit log files may have.
    Returns the maximum duration to keep audit information.
    Obtain an iterator over the XPath expressions (Strings) currently registered with the audit manager.
    boolean
    Determines if the server will audit all iq packets.
    boolean
    Determines if the server will audit all message packets.
    boolean
    Determines if the server will audit all presence packets.
    boolean
    Determines if the server will audit packets using XPath expressions.
    boolean
    Determines if auditing is enabled at all.
    void
    removeXPath(String xpathExpression)
    Removes the XPath expression from the set being used for filtering packets to be audited.
    void
    setAuditIQ(boolean enabled)
    Enables or disables the server auditing of all iq packets.
    void
    setAuditMessage(boolean enabled)
    Enables or disables the server auditing of all message packets.
    void
    setAuditPresence(boolean enabled)
    Enables or disables the server auditing of all presence packets.
    void
    setAuditXPath(boolean enabled)
    Enables/disables server auditing of packets using XPath expressions.
    void
    setEnabled(boolean enabled)
    Turns auditing off or on for the manager as a whole.
    void
    Sets the list of usernames that won't be audited.
    void
    setLogDir(String logDir)
    Sets the absolute path to the directory where the audit log files will be saved.
    void
    setLogTimeout(Duration logTimeout)
    Sets the time between successive executions of the task that will save the queued audited packets to a permanent store.
    void
    setMaxFileSize(int size)
    Set the maximum size of audit log files in megabytes.
    void
    setMaxTotalSize(int size)
    Sets the maximum size in megabytes that all audit log files may have.
    void
    Set the duration to keep audit information.
  • Field Details

    • PRESENCE_UNAVAILABLE_AVAILABLE

      static final int PRESENCE_UNAVAILABLE_AVAILABLE
      See Also:
    • PRESENCE_AVAILABLE_AVAILABLE

      static final int PRESENCE_AVAILABLE_AVAILABLE
      See Also:
    • PRESENCE_AVAILABLE_UNAVAILABLE

      static final int PRESENCE_AVAILABLE_UNAVAILABLE
      See Also:
    • PRESENCE_UNAVAILABLE_UNAVAILABLE

      static final int PRESENCE_UNAVAILABLE_UNAVAILABLE
      See Also:
  • Method Details

    • isEnabled

      boolean isEnabled()
      Determines if auditing is enabled at all.
      Returns:
      true if auditing is enabled, false indicates no auditing will occur
    • setEnabled

      void setEnabled(boolean enabled)
      Turns auditing off or on for the manager as a whole.
      Parameters:
      enabled - true if auditing is enabled, false indicates no auditing will occur.
    • getAuditor

      Auditor getAuditor()
      Factory method for creating auditors that are configured by this audit manager.
      Returns:
      a new auditor that will obey the configuration of the audit manager.
    • getMaxTotalSize

      int getMaxTotalSize()
      Returns the maximum size in megabytes that all audit log files may have. When the limit is reached oldest audit log files will be removed until total size is under the limit.
      Returns:
      the maximum size of all audit logs in megabytes.
    • setMaxTotalSize

      void setMaxTotalSize(int size)
      Sets the maximum size in megabytes that all audit log files may have. When the limit is reached oldest audit log files will be removed until total size is under the limit.
      Parameters:
      size - the maximum size of all audit logs in megabytes.
    • getMaxFileSize

      int getMaxFileSize()
      Obtain the maximum size of audit log files in megabytes. Logs that exceed the max size will be rolled over to another file.
      Returns:
      the maximum size of an audit log in megabytes.
    • setMaxFileSize

      void setMaxFileSize(int size)
      Set the maximum size of audit log files in megabytes.
      Parameters:
      size - the maximum audit log file size in megabytes.
    • getRetention

      Duration getRetention()
      Returns the maximum duration to keep audit information. Once the limit has been reached audit files that contain information that exceed the limit will be deleted.
      Returns:
      the maximum duration to keep audit information, negative value for unlimited.
    • setRetention

      void setRetention(Duration duration)
      Set the duration to keep audit information. Once the limit has been reached audit files that contain information that exceed the limit will be deleted.
      Parameters:
      duration - the maximum duration to keep audit information or a negative value for unlimited
    • getLogTimeout

      Duration getLogTimeout()
      Returns the time between successive executions of the task that will save the queued audited packets to a permanent store.
      Returns:
      the time between successive executions of the task that will save the queued audited packets to a permanent store.
    • setLogTimeout

      void setLogTimeout(Duration logTimeout)
      Sets the time between successive executions of the task that will save the queued audited packets to a permanent store.
      Parameters:
      logTimeout - the time between successive executions of the task that will save the queued audited packets to a permanent store.
    • getLogDir

      String getLogDir()
      Returns the absolute path to the directory where the audit log files will be saved.
      Returns:
      the absolute path to the directory where the audit log files will be saved.
    • setLogDir

      void setLogDir(String logDir)
      Sets the absolute path to the directory where the audit log files will be saved.
      Parameters:
      logDir - the absolute path to the directory where the audit log files will be saved.
    • isAuditMessage

      boolean isAuditMessage()

      Determines if the server will audit all message packets.

      This is a speed optimization and convenience for logging all message packets rather than using an XPath expression.

      Returns:
      true if all messages are to be audited
    • setAuditMessage

      void setAuditMessage(boolean enabled)

      Enables or disables the server auditing of all message packets.

      This is a speed optimization and convenience for logging all message packets rather than using an XPath expression.

      Parameters:
      enabled - True if all messages are to be audited
    • isAuditPresence

      boolean isAuditPresence()

      Determines if the server will audit all presence packets.

      This is a speed optimization and convenience for logging all presence packets rather than using an XPath expression.

      Returns:
      True if all presence are to be audited
    • setAuditPresence

      void setAuditPresence(boolean enabled)

      Enables or disables the server auditing of all presence packets.

      This is a speed optimization and convenience for logging all presence packets rather than using an XPath expression.

      Parameters:
      enabled - True if all presence are to be audited
    • isAuditIQ

      boolean isAuditIQ()

      Determines if the server will audit all iq packets.

      This is a speed optimization and convenience for logging all iq packets rather than using an XPath expression.

      Returns:
      True if all iq are to be audited
    • setAuditIQ

      void setAuditIQ(boolean enabled)
      Enables or disables the server auditing of all iq packets. This is a speed optimization and convenience for logging all iq packets rather than using an XPath expression.
      Parameters:
      enabled - true if all iq are to be audited.
    • isAuditXPath

      boolean isAuditXPath()
      Determines if the server will audit packets using XPath expressions. XPath expressions provide a lot of power in specifying what is logged. However, it is much more compute intensive than other techniques and requires all packets be transformed into DOM objects (which can be computationally expensive).
      Returns:
      true if XPath expressions should be audited.
    • setAuditXPath

      void setAuditXPath(boolean enabled)

      Enables/disables server auditing of packets using XPath expressions.

      XPath expressions provide a lot of power in specifying what is logged. However, it is much more compute intensive than other techniques and requires all packets be transformed into DOM objects (which can be computationally expensive).

      Parameters:
      enabled - true if XPath expressions should be audited
    • addXPath

      void addXPath(String xpathExpression)
      Adds an XPath expression to be used for filtering packets to be audited. XPath expressions aren't evaluated or used for filtering unless isAuditXPath() returns true.
      Parameters:
      xpathExpression - the xpath expression to add to the list of auditing filters.
    • removeXPath

      void removeXPath(String xpathExpression)

      Removes the XPath expression from the set being used for filtering packets to be audited.

      XPath expressions aren't evaluated or used for filtering unless isAuditXPath() returns true.

      Parameters:
      xpathExpression - The xpath expression to remove from the list of auditing filters
    • getXPathFilters

      Iterator<String> getXPathFilters()

      Obtain an iterator over the XPath expressions (Strings) currently registered with the audit manager.

      XPath expressions aren't evaluated or used for filtering unless isAuditXPath() returns true.

      Returns:
      An iterator of all XPath expressions the audit manager is using
    • setIgnoreList

      void setIgnoreList(Collection<String> usernames)
      Sets the list of usernames that won't be audited. Packets sent or received by any of these users will be ignored by the auditor.
      Parameters:
      usernames - the list of usernames that won't be audited.
    • getIgnoreList

      Collection<String> getIgnoreList()
      Returns the list of usernames that won't be audited. Packets sent or received by any of these users will be ignored by the auditor.
      Returns:
      the list of usernames that won't be audited.