diff --git a/webapp/src/main/java/com/box/l10n/mojito/security/RequestLoggingConfig.java b/webapp/src/main/java/com/box/l10n/mojito/security/RequestLoggingConfig.java new file mode 100644 index 000000000..ada692711 --- /dev/null +++ b/webapp/src/main/java/com/box/l10n/mojito/security/RequestLoggingConfig.java @@ -0,0 +1,38 @@ +package com.box.l10n.mojito.security; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.filter.CommonsRequestLoggingFilter; + +@Configuration +public class RequestLoggingConfig { + + @Value("${l10n.logging.requests.includesQueryString:false}") + public boolean includesQueryString; + + @Value("${l10n.logging.requests.includesHeader:false}") + public boolean includesHeader; + + @Value("${l10n.logging.requests.includesPayload:true}") + public boolean includesPayload; + + @Value("${l10n.logging.requests.maxPayloadLength:10000}") + public int maxPayloadLength; + + @Value("${l10n.logging.requests.maxPayloadLength:Request Data}") + public String afterMessagePrefix; + + @Bean + @ConditionalOnProperty(value = "l10n.logging.requests.enabled", havingValue = "true") + public CommonsRequestLoggingFilter logFilter() { + CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter(); + filter.setIncludeQueryString(includesQueryString); + filter.setIncludePayload(includesPayload); + filter.setMaxPayloadLength(maxPayloadLength); + filter.setIncludeHeaders(includesHeader); + filter.setAfterMessagePrefix(afterMessagePrefix); + return filter; + } +}