Class SarifLogger

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int BUFFER_SIZE
      Input stream buffer size.
      private boolean closeStream
      Close output stream in auditFinished.
      private static java.lang.String COLUMN_PLACEHOLDER
      The placeholder for column.
      private static java.lang.String LINE_PLACEHOLDER
      The placeholder for line.
      private static java.lang.String MESSAGE_PLACEHOLDER
      The placeholder for message.
      private java.lang.String report
      Content for the entire report.
      private java.lang.String resultErrorOnly
      Content for result representing an error without filename or location.
      private java.lang.String resultFileOnly
      Content for result representing an error with filename only and without source location.
      private java.lang.String resultLineColumn
      Content for result representing an error with source line and column.
      private java.lang.String resultLineOnly
      Content for result representing an error with source line only.
      private java.util.List<java.lang.String> results
      The results.
      private static java.lang.String RESULTS_PLACEHOLDER
      The placeholder for results.
      private static java.lang.String RULE_ID_PLACEHOLDER
      The placeholder for rule id.
      private static java.lang.String SEVERITY_LEVEL_PLACEHOLDER
      The placeholder for severity level.
      private static int UNICODE_ESCAPE_UPPER_LIMIT
      Unicode escaping upper limit.
      private static int UNICODE_LENGTH
      The length of unicode placeholder.
      private static java.lang.String URI_PLACEHOLDER
      The placeholder for uri.
      private static java.lang.String VERSION_PLACEHOLDER
      The placeholder for version.
      private java.io.PrintWriter writer
      Helper writer that allows easy encoding and printing.
    • Constructor Detail

      • SarifLogger

        public SarifLogger​(java.io.OutputStream outputStream,
                           AutomaticBean.OutputStreamOptions outputStreamOptions)
                    throws java.io.IOException
        Creates a new SarifLogger instance.
        Parameters:
        outputStream - where to log audit events
        outputStreamOptions - if CLOSE that should be closed in auditFinished()
        Throws:
        java.lang.IllegalArgumentException - if outputStreamOptions is null
        java.io.IOException - if there is reading errors.
    • Method Detail

      • finishLocalSetup

        protected void finishLocalSetup()
        Description copied from class: AutomaticBean
        Provides a hook to finish the part of this component's setup that was not handled by the bean introspection.

        The default implementation does nothing.

        Specified by:
        finishLocalSetup in class AutomaticBean
      • addException

        public void addException​(AuditEvent event,
                                 java.lang.Throwable throwable)
        Description copied from interface: AuditListener
        Notify that an exception happened while performing audit.
        Specified by:
        addException in interface AuditListener
        Parameters:
        event - the event details
        throwable - details of the exception
      • renderSeverityLevel

        private static java.lang.String renderSeverityLevel​(SeverityLevel severityLevel)
        Render the severity level into SARIF severity level.
        Parameters:
        severityLevel - the Severity level.
        Returns:
        the rendered severity level in string.
      • escape

        public static java.lang.String escape​(java.lang.String value)
        Escape \b, \f, \n, \r, \t, \", \\ and U+0000 through U+001F. Reference: https://www.ietf.org/rfc/rfc4627.txt - 2.5. Strings
        Parameters:
        value - the value to escape.
        Returns:
        the escaped value if necessary.
      • escapeUnicode1F

        private static java.lang.String escapeUnicode1F​(char chr)
        Escape the character between 0x00 to 0x1F in JSON.
        Parameters:
        chr - the character to be escaped.
        Returns:
        the escaped string.
      • readResource

        public static java.lang.String readResource​(java.lang.String name)
                                             throws java.io.IOException
        Read string from given resource.
        Parameters:
        name - name of the desired resource
        Returns:
        the string content from the give resource
        Throws:
        java.io.IOException - if there is reading errors