Class RequestLogger

java.lang.Object
se.fortnox.reactivewizard.jaxrs.RequestLogger

public class RequestLogger extends Object
Logs incoming requests to a Logger.
  • Constructor Details

    • RequestLogger

      public RequestLogger(org.slf4j.Logger logger)
  • Method Details

    • headersToString

      public static void headersToString(reactor.netty.http.server.HttpServerRequest request, StringBuilder logLine)
      Concatenate request header keys and values into a loggable string.
      Parameters:
      request - The request to extract headers from
      logLine - StringBuilder to append the header content to.
    • headersToString

      public static void headersToString(reactor.netty.http.server.HttpServerResponse response, StringBuilder logLine)
      Concatenate response header keys and values into a loggable string.
      Parameters:
      response - The response to extract headers from
      logLine - StringBuilder to append the header content to
    • getHeaderValueOrRedact

      public static String getHeaderValueOrRedact(Map.Entry<String,String> header)
      Returns the value of a header. If the header contains sensitive information the value will be replaced with "REDACTED".
      Parameters:
      header - The header to get the value from
      Returns:
      value of the header or "REDACTED" if the header contains sensitive information
    • getHeaderValueOrRedact

      public static String getHeaderValueOrRedact(Map.Entry<String,String> header, Set<String> sensitiveHeaders)
      Returns the value of a header. If the header contains sensitive information the value will be replaced with "REDACTED".
      Parameters:
      header - The header to get the value from
      sensitiveHeaders - Sensitive headers to redact
      Returns:
      value of the header or "REDACTED" if the header contains sensitive information
    • getHeaderValuesOrRedact

      public static Set<Map.Entry<String,String>> getHeaderValuesOrRedact(Map<String,String> headers)
      Redact sensitive information from header values. Any header that contains sensitive information will have the value replaced with "REDACTED"
      Parameters:
      headers - The headers to map
      Returns:
      headers with sensitive information redacted
    • getHeaderValuesOrRedact

      public static Set<Map.Entry<String,String>> getHeaderValuesOrRedact(Map<String,String> headers, Set<String> sensitiveHeaders)
      Redact sensitive information from header values. Any header that contains sensitive information will have the value replaced with "REDACTED"
      Parameters:
      headers - The headers to map
      sensitiveHeaders - Sensitive headers that should be redacted from logging
      Returns:
      headers with sensitive information redacted
    • logAccess

      public static void logAccess(reactor.netty.http.server.HttpServerRequest request, reactor.netty.http.server.HttpServerResponse response, long duration, StringBuilder logLine)
      Append a log entry for a server access event.
      Parameters:
      request - The request to log
      response - The response to log
      duration - Duration of the request
      logLine - StringBuilder to append the header content to
    • logRequestResponse

      public static void logRequestResponse(reactor.netty.http.server.HttpServerRequest request, reactor.netty.http.server.HttpServerResponse response, long requestStartTime, org.slf4j.Logger log)
      Write a log entry for a request/response pair.
      Parameters:
      request - The request to log
      response - The response to log
      requestStartTime - Duration of the request
      log - The logger to write to
    • log

      public void log(reactor.netty.http.server.HttpServerRequest request, reactor.netty.http.server.HttpServerResponse response, long requestStartTime)