Package se.fortnox.reactivewizard.jaxrs
Class RequestLogger
java.lang.Object
se.fortnox.reactivewizard.jaxrs.RequestLogger
Logs incoming requests to a Logger.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringgetHeaderValueOrRedact(Map.Entry<String, String> header) Returns the value of a header.static StringReturns the value of a header.getHeaderValuesOrRedact(Map<String, String> headers) Redact sensitive information from header values.Redact sensitive information from header values.static voidheadersToString(reactor.netty.http.server.HttpServerRequest request, StringBuilder logLine) Concatenate request header keys and values into a loggable string.static voidheadersToString(reactor.netty.http.server.HttpServerResponse response, StringBuilder logLine) Concatenate response header keys and values into a loggable string.voidlog(reactor.netty.http.server.HttpServerRequest request, reactor.netty.http.server.HttpServerResponse response, long requestStartTime) static voidlogAccess(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.static voidlogRequestResponse(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.
-
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 fromlogLine- 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 fromlogLine- StringBuilder to append the header content to
-
getHeaderValueOrRedact
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 fromsensitiveHeaders- Sensitive headers to redact- Returns:
- value of the header or "REDACTED" if the header contains sensitive information
-
getHeaderValuesOrRedact
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 mapsensitiveHeaders- 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 logresponse- The response to logduration- Duration of the requestlogLine- 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 logresponse- The response to logrequestStartTime- Duration of the requestlog- The logger to write to
-
log
public void log(reactor.netty.http.server.HttpServerRequest request, reactor.netty.http.server.HttpServerResponse response, long requestStartTime)
-