diff options
author | sourabh_sourabh <sourabh.sourabh@est.tech> | 2022-05-04 11:38:52 +0100 |
---|---|---|
committer | sourabh_sourabh <sourabh.sourabh@est.tech> | 2022-05-09 23:58:14 +0100 |
commit | df26bc38a75f10650ce5785cdc9bd7b9516f6f25 (patch) | |
tree | 9bf05cfca390e23e1cc31d76d9fb99ceadf090a9 | |
parent | ce9cdeea8abc5c2f47d1456e6c14bd2935e638ce (diff) |
Security Logging Fields
- logback encoder and sleuth 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: Id7e4d836188da54b94144076a8755e4a2643a7ad
-rw-r--r-- | pom.xml | 22 | ||||
-rw-r--r-- | src/main/resources/application.yml | 3 | ||||
-rw-r--r-- | src/main/resources/logback-spring.xml | 75 | ||||
-rw-r--r-- | src/test/resources/application.yml | 4 |
4 files changed, 104 insertions, 0 deletions
@@ -82,6 +82,16 @@ <type>pom</type> <scope>import</scope> </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> <dependencies> @@ -185,6 +195,18 @@ <artifactId>kafka</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-starter-sleuth</artifactId> + </dependency> + <dependency> + <groupId>net.logstash.logback</groupId> + <artifactId>logstash-logback-encoder</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.janino</groupId> + <artifactId>janino</artifactId> + </dependency> </dependencies> <build> <resources> diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 71a689cd..8be97d2d 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -39,6 +39,8 @@ security: # This is a known issue with springfox and springboot introduced in 2.6.x: # https://github.com/springfox/springfox/issues/3462 spring: + application: + name: ncmp-dmi-plugin mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER @@ -89,6 +91,7 @@ sdnc: password: ${SDNC_PASSWORD} logging: + format: json level: org.springframework: ERROR org.onap.cps: DEBUG diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..355209b4 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,75 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 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. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<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="asyncConsole" class="ch.qos.logback.classic.AsyncAppender"> + <if condition='property("loggingFormat").equalsIgnoreCase("json")'> + <then> + <appender-ref ref="jsonConsole"/> + </then> + <else> + <appender-ref ref="CONSOLE"/> + </else> + </if> + </appender> + + <root level="INFO"> + <appender-ref ref="asyncConsole"/> + </root> + +</configuration> diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index afaaa4d6..0d3784f9 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -45,6 +45,8 @@ dmi: url: some url for the dmi service spring: + application: + name: ncmp-dmi-plugin kafka: bootstrap-servers: localhost:9092 security: @@ -59,3 +61,5 @@ app: async-m2m: topic: my-topic-name +logging: + format: json |