aboutsummaryrefslogtreecommitdiffstats
path: root/common/src/test/java/org/onap/so/logging/MaskLogStatementsTest.java
blob: ba5aeb522aa045616f934a986325bd7b71ad7527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package org.onap.so.logging;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.junit.Test;
import org.onap.so.logger.MaskLogStatements;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.LoggingEvent;

public class MaskLogStatementsTest {

    private LoggerContext lc = new LoggerContext();
    private Logger logger = lc.getLogger(MaskLogStatementsTest.class);

    @Test
    public void verifyOpenStackPayload() throws IOException {
        String payload =
                new String(Files.readAllBytes(Paths.get("src/test/resources/__files/logging/openstack-payload.json")));

        ILoggingEvent event = makeLoggingEvent(payload);

        MaskLogStatements mask = new MaskLogStatements();

        mask.setContext(lc);
        mask.setPattern("%m");
        mask.start();
        String result = mask.doLayout(event);

        assertTrue(result.matches("(?s).*?\"password\"\\s?:\\s?\"\\*+\".*"));

    }

    @Test
    public void maskAuthHeaderTest() {
        String msg = "Headers     : [Accept:\"application/json\", Authorization:\"Basic dklfjeaklfjdkalf\","
                + "Content-Type:\"application/json\", Content-Length:\"10\","
                + "X-RequestID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\", X-TransactionID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\","
                + "X-ECOMP-RequestID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\", X-ONAP-PartnerName:\"SO.APIH\","
                + "X-InvocationID:\"885e4f99-6f24-4f17-ab1b-584b37715b49\"]";

        String expected = "Headers     : [Accept:\"application/json\", Authorization:\"Basic ****************\","
                + "Content-Type:\"application/json\", Content-Length:\"10\","
                + "X-RequestID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\", X-TransactionID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\","
                + "X-ECOMP-RequestID:\"db2a0462-69d0-499f-93ec-e2a064ef1f59\", X-ONAP-PartnerName:\"SO.APIH\","
                + "X-InvocationID:\"885e4f99-6f24-4f17-ab1b-584b37715b49\"]";
        ILoggingEvent event = makeLoggingEvent(msg);

        MaskLogStatements mask = new MaskLogStatements();

        mask.setContext(lc);
        mask.setPattern("%m");
        mask.start();
        String result = mask.doLayout(event);

        assertEquals(expected, result);
    }

    @Test
    public void maskAuthHeaderObjectStringTest() {
        String msg = "Headers: {Accept=[text/plain, application/json, application/*+json, */*],"
                + "Authorization=[Basic aaaaa],"
                + "connection=[keep-alive], Content-Length=[217], content-type=[application/xml],"
                + "host=[mso-bpmn-infra-svc:9200], user-agent=[Java/11.0.6]}";
        String expected = "Headers: {Accept=[text/plain, application/json, application/*+json, */*],"
                + "Authorization=[Basic -----],"
                + "connection=[keep-alive], Content-Length=[217], content-type=[application/xml],"
                + "host=[mso-bpmn-infra-svc:9200], user-agent=[Java/11.0.6]}";
        ILoggingEvent event = makeLoggingEvent(msg);

        MaskLogStatements mask = new MaskLogStatements();

        mask.setContext(lc);
        mask.setPattern("%m");
        mask.setMaskChar("-");
        mask.start();
        String result = mask.doLayout(event);

        assertEquals(expected, result);
    }

    private ILoggingEvent makeLoggingEvent(String message) {
        return new LoggingEvent(MaskLogStatementsTest.class.getName(), logger, Level.INFO, message, null, null);
    }
}