Class AuditEvent


  • public class AuditEvent
    extends Object
    Audit event that takes request and auth context as input to be able to audit log custom things. This interface may change in next release and is marked experimental
    Since:
    8.1.0
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Constructor Detail

      • AuditEvent

        public AuditEvent​(AuditEvent.EventType eventType)
        Empty event, must be filled by user using setters. Message and Loglevel will be initialized from EventType but can be overridden with setters afterwards.
        Parameters:
        eventType - a predefined or custom EventType
      • AuditEvent

        public AuditEvent​(AuditEvent.EventType eventType,
                          javax.servlet.http.HttpServletRequest httpRequest)
      • AuditEvent

        protected AuditEvent()
      • AuditEvent

        public AuditEvent​(AuditEvent.EventType eventType,
                          Throwable exception,
                          javax.servlet.http.HttpServletRequest httpRequest)
        Event based on an HttpServletRequest, typically used during authentication. Solr will fill in details such as ip, http method etc from the request, and username if Principal exists on the request.
        Parameters:
        eventType - a predefined or custom EventType
        httpRequest - the request to initialize from
      • AuditEvent

        public AuditEvent​(AuditEvent.EventType eventType,
                          javax.servlet.http.HttpServletRequest httpRequest,
                          AuthorizationContext authorizationContext)
        Event based on request and AuthorizationContext. Solr will fill in details such as collections, ip, http method etc from the context.
        Parameters:
        eventType - a predefined or custom EventType
        httpRequest - the request to initialize from
        authorizationContext - the context to initialize from
      • AuditEvent

        public AuditEvent​(AuditEvent.EventType eventType,
                          javax.servlet.http.HttpServletRequest httpRequest,
                          AuthorizationContext authorizationContext,
                          double qTime,
                          Throwable exception)
        Event to log completed requests. Takes time and status. Solr will fill in details such as collections, ip, http method etc from the HTTP request and context.
        Parameters:
        eventType - a predefined or custom EventType
        httpRequest - the request to initialize from
        authorizationContext - the context to initialize from
        qTime - query time
        exception - exception from query response, or null if OK
    • Method Detail

      • getMessage

        public String getMessage()
        The human readable message about this event
      • getDate

        public Date getDate()
        Date that the event happened
      • getUsername

        public String getUsername()
        Username of logged in user, or null if no authenticated user
      • getSession

        public String getSession()
        Session identifier
      • getClientIp

        public String getClientIp()
        IP address of the client doing the request
      • getContext

        public Map<String,​Object> getContext()
        A general purpose context map with potential extra information about the event
      • getCollections

        public List<String> getCollections()
        List of collection names involved in request
      • getResource

        public String getResource()
        Identifies the resource being operated on. This is not the same as URL path. For queries the resource is relative to collection name, e.g. /select or /update. For other events the resource may be /api/node/health or /admin/collection
      • getHttpMethod

        public String getHttpMethod()
        The HTTP method. E.g. GET, POST, PUT
      • getHttpQueryString

        public String getHttpQueryString()
        Query part of URL or null if query part
      • getSolrHost

        public String getSolrHost()
        Host name of the Solr node logging the event
      • getSolrIp

        public String getSolrIp()
        IP address of the Solr node logging the event
      • getSolrPort

        public int getSolrPort()
        Port number of the Solr node logging the event
      • getHeaders

        public Map<String,​String> getHeaders()
        Map of all HTTP request headers belonging to the request
      • getSolrParams

        public Map<String,​List<String>> getSolrParams()
        Map of all Solr request parameters attached to the request. Pulled from url
      • getSolrParamAsString

        public String getSolrParamAsString​(String key)
        Gets first value of a certain Solr request parameter
        Parameters:
        key - name of request parameter to retrieve
        Returns:
        String value of the first value, regardless of number of valies
      • getAutResponse

        public AuthorizationResponse getAutResponse()
        The authorization response object from authorization plugin, or null authz has not happened
      • getNodeName

        public String getNodeName()
        Node name of Solr node, on the internal format host:port_context, e.g. 10.0.0.1:8983_solr
      • getStatus

        public int getStatus()
        HTTP status code of event, i.e. 200 = OK, 401 = unauthorized
      • getQTime

        public double getQTime()
        Request time in milliseconds for completed requests
      • getException

        public Throwable getException()
        In case of ERROR event, find the exception causing the error
      • getRequestUrl

        @Deprecated
        public StringBuffer getRequestUrl()
        Deprecated.
        Please use getBaseUrl() instead
        Get baseUrl as StringBuffer for back compat with previous version
        Returns:
        StringBuffer of the base url without query part
      • getBaseUrl

        public String getBaseUrl()
        First part of URL of the request, but not including request parameters, or null if not set
      • setHttpQueryString

        public AuditEvent setHttpQueryString​(String httpQueryString)
      • setSolrPort

        public AuditEvent setSolrPort​(int solrPort)
      • setQTime

        public AuditEvent setQTime​(double qTime)
      • setStatus

        public AuditEvent setStatus​(int status)
      • normalizeResourcePath

        protected String normalizeResourcePath​(String resourcePath)