diff options
author | sourabh_sourabh <sourabh.sourabh@est.tech> | 2022-04-22 22:47:41 +0100 |
---|---|---|
committer | sourabh_sourabh <sourabh.sourabh@est.tech> | 2022-05-05 12:21:23 +0100 |
commit | ac5ae3e24e347bb6d643e9b4e5ebcf3baa7152a2 (patch) | |
tree | 54237e95d9e639cd3795cb0262260aa73fdedc0e | |
parent | 47d6b392e984181418b920d0ea8fe658f6375acc (diff) |
Security Logging Fields
- logback core and encoder dependencies are added.
- New appender is added to log JSON format content on console.
Issue-ID: CPS-986
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Change-Id: Ia72b27f306019fa259b3d6de4c5399f0ae734076
-rw-r--r-- | cps-application/src/main/resources/application.yml | 1 | ||||
-rwxr-xr-x | cps-dependencies/pom.xml | 10 | ||||
-rw-r--r-- | cps-service/pom.xml | 8 | ||||
-rw-r--r-- | cps-service/src/main/resources/logback-spring.xml | 105 |
4 files changed, 68 insertions, 56 deletions
diff --git a/cps-application/src/main/resources/application.yml b/cps-application/src/main/resources/application.yml index 4dfeee8098..263ae6b3dd 100644 --- a/cps-application/src/main/resources/application.yml +++ b/cps-application/src/main/resources/application.yml @@ -124,6 +124,7 @@ management: enabled: true
logging:
+ format: json
level:
org:
springframework: INFO
diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml index dcbc5f70bb..73cca23919 100755 --- a/cps-dependencies/pom.xml +++ b/cps-dependencies/pom.xml @@ -200,6 +200,16 @@ <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.version}</version> </dependency> + <dependency> + <groupId>net.logstash.logback</groupId> + <artifactId>logstash-logback-encoder</artifactId> + <version>7.0.1</version> + </dependency> + <dependency> + <groupId>org.codehaus.janino</groupId> + <artifactId>janino</artifactId> + <version>3.1.7</version> + </dependency> </dependencies> </dependencyManagement> </project> diff --git a/cps-service/pom.xml b/cps-service/pom.xml index aea122d176..b9d6268746 100644 --- a/cps-service/pom.xml +++ b/cps-service/pom.xml @@ -107,6 +107,14 @@ <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
+ <dependency>
+ <groupId>net.logstash.logback</groupId>
+ <artifactId>logstash-logback-encoder</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ </dependency>
<!-- T E S T D E P E N D E N C I E S -->
<dependency>
<groupId>org.codehaus.groovy</groupId>
diff --git a/cps-service/src/main/resources/logback-spring.xml b/cps-service/src/main/resources/logback-spring.xml index 3bba9f1bb7..ce1af13143 100644 --- a/cps-service/src/main/resources/logback-spring.xml +++ b/cps-service/src/main/resources/logback-spring.xml @@ -1,6 +1,6 @@ <!-- ============LICENSE_START======================================================= - Copyright (C) 2021 Nordix Foundation + Copyright (C) 2021-2022 Nordix Foundation ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,65 +18,58 @@ ============LICENSE_END========================================================= --> -<configuration scan="true" debug="false"> - <include resource="org/springframework/boot/logging/logback/base.xml" /> - - <property name="queueSize" value="256" /> - <property name="maxFileSize" value="20MB" /> - <property name="maxHistory" value="30" /> - <property name="totalSizeCap" value="20MB" /> - - <!-- log file names --> - <property name="logName" value="cps" /> - - <property name="currentTimeStamp" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",UTC}"/> - - <property name="debugPattern" - value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%thread|%X{RequestID}| %logger{50} - %msg%n" /> - - <property name="all-log-pattern" - value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%thread|%X{RequestID}| %logger{50} - %msg%n" /> +<configuration scan="true" scanPeriod="30 seconds" debug="false"> + + <include resource="org/springframework/boot/logging/logback/defaults.xml" /> + <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> + + <springProperty scope="context" name="springAppName" source="spring.application.name"/> + <springProperty scope="context" name="username" source="security.auth.username"/> + <springProperty scope="context" name="loggingFormat" source="logging.format"/> + + <property name="currentTimeStamp" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}"/> + + <appender name="jsonConsole" + class="ch.qos.logback.core.ConsoleAppender"> + <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> + <providers> + <pattern> + <omitEmptyFields>true</omitEmptyFields> + <pattern> + { + "logTimeStamp": "${currentTimeStamp:-}", + "logTypeName": "", + "logLevel": "%level", + "traceId": "%X{traceId:-}", + "statusCode": "", + "principalId": "${username:-}", + "serviceName": "${springAppName:-}", + "message": "%message", + "spanId": "%X{spanId:-}", + "processId": "${PID:-}", + "threadName": "%thread", + "class": "%logger{40}", + "exception": "%wEx" + } + </pattern> + </pattern> + </providers> + </encoder> + </appender> - <appender name="CONSOLE" - class="ch.qos.logback.core.ConsoleAppender"> - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>${all-log-pattern}</Pattern> - </layout> + <appender name="asyncConsole" class="ch.qos.logback.classic.AsyncAppender"> + <if condition='property("loggingFormat").equals("json")'> + <then> + <appender-ref ref="jsonConsole"/> + </then> + <else> + <appender-ref ref="CONSOLE"/> + </else> + </if> </appender> <root level="INFO"> - <appender-ref ref="CONSOLE" /> + <appender-ref ref="asyncConsole"/> </root> -<!-- Send logs to File & Rotate File --> -<!-- <appender name="Debug"--> -<!-- class="ch.qos.logback.core.rolling.RollingFileAppender">--> -<!-- <file>../log/${logName}.log</file>--> -<!-- <rollingPolicy--> -<!-- class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">--> -<!-- <fileNamePattern>${logName}.%d{yyyy-MM-dd}.%i.log.zip--> -<!-- </fileNamePattern>--> -<!-- <maxFileSize>${maxFileSize}</maxFileSize>--> -<!-- <maxHistory>${maxHistory}</maxHistory>--> -<!-- <totalSizeCap>${totalSizeCap}</totalSizeCap>--> -<!-- </rollingPolicy>--> -<!-- <encoder>--> -<!-- <pattern>${debugPattern}</pattern>--> -<!-- </encoder>--> -<!-- </appender>--> - -<!-- <appender name="asyncDebug" class="ch.qos.logback.classic.AsyncAppender">--> -<!-- <queueSize>256</queueSize>--> -<!-- <appender-ref ref="Debug" />--> -<!-- <includeCallerData>true</includeCallerData>--> -<!-- </appender>--> - -<!-- <logger name="org.onap.cps" level="DEBUG" additivity="false">--> -<!-- <appender-ref ref="asyncDebug" />--> -<!-- </logger>--> - -<!-- <root level="INFO">--> -<!-- <appender-ref ref="asyncDebug" />--> -<!-- </root>--> - </configuration> |