Skip to content

Commit 9a955f3

Browse files
Add sap-passport HTTP Header Support
1 parent 7ca0fa7 commit 9a955f3

File tree

3 files changed

+83
-65
lines changed

3 files changed

+83
-65
lines changed

cf-java-logging-support-core/src/main/java/com/sap/hcp/cf/logging/common/request/HttpHeaders.java

Lines changed: 68 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -12,67 +12,72 @@
1212
import com.sap.hcp.cf.logging.common.LogContext;
1313

1414
public enum HttpHeaders implements HttpHeader {
15-
16-
CONTENT_LENGTH("content-length"), CONTENT_TYPE("content-type"), REFERER("referer"), X_FORWARDED_FOR(
17-
"x-forwarded-for"), X_VCAP_REQUEST_ID("x-vcap-request-id", Fields.REQUEST_ID, true), CORRELATION_ID("X-CorrelationID",
18-
Fields.CORRELATION_ID, true, X_VCAP_REQUEST_ID), TENANT_ID("tenantid", Fields.TENANT_ID, true);
19-
20-
private HttpHeaders(String name) {
21-
this(name, null, false);
22-
}
23-
24-
private HttpHeaders(String name, String field, boolean isPropagated, HttpHeaders... aliases) {
25-
this.name = name;
26-
this.field = field;
27-
this.isPropagated = isPropagated;
28-
this.aliases = unmodifiableList(asList(aliases));
29-
}
30-
31-
private String name;
32-
private String field;
33-
private boolean isPropagated;
34-
private List<HttpHeader> aliases;
35-
36-
@Override
37-
public boolean isPropagated() {
38-
return isPropagated;
39-
}
40-
41-
@Override
42-
public String getName() {
43-
return name;
44-
}
45-
46-
@Override
47-
public String getField() {
48-
return field;
49-
}
50-
51-
@Override
52-
public String getFieldValue() {
53-
return field != null ? LogContext.get(field) : Defaults.UNKNOWN;
54-
}
55-
56-
@Override
57-
public List<HttpHeader> getAliases() {
58-
return aliases;
59-
}
60-
61-
public static List<HttpHeaders> propagated() {
62-
return LazyPropagatedHeaderHolder.PROPAGATED;
63-
}
64-
65-
private static class LazyPropagatedHeaderHolder {
66-
public static final List<HttpHeaders> PROPAGATED = createPropagated();
67-
68-
private static List<HttpHeaders> createPropagated() {
69-
List<HttpHeaders> propagated = new ArrayList<>();
70-
for (HttpHeaders current : values()) {
71-
if (current.isPropagated()) {
72-
propagated.add(current);
73-
}
74-
}
75-
return Collections.unmodifiableList(propagated);
76-
}
77-
}
15+
CONTENT_LENGTH("content-length"), //
16+
CONTENT_TYPE("content-type"), //
17+
REFERER("referer"), //
18+
X_FORWARDED_FOR("x-forwarded-for"), //
19+
X_VCAP_REQUEST_ID("x-vcap-request-id", Fields.REQUEST_ID, true), //
20+
CORRELATION_ID("X-CorrelationID", Fields.CORRELATION_ID, true,
21+
X_VCAP_REQUEST_ID), //
22+
SAP_PASSPORT("sap-passport", Fields.SAP_PASSPORT, true), //
23+
TENANT_ID("tenantid", Fields.TENANT_ID, true); //
24+
25+
private HttpHeaders(String name) {
26+
this(name, null, false);
27+
}
28+
29+
private HttpHeaders(String name, String field, boolean isPropagated, HttpHeaders... aliases) {
30+
this.name = name;
31+
this.field = field;
32+
this.isPropagated = isPropagated;
33+
this.aliases = unmodifiableList(asList(aliases));
34+
}
35+
36+
private String name;
37+
private String field;
38+
private boolean isPropagated;
39+
private List<HttpHeader> aliases;
40+
41+
@Override
42+
public boolean isPropagated() {
43+
return isPropagated;
44+
}
45+
46+
@Override
47+
public String getName() {
48+
return name;
49+
}
50+
51+
@Override
52+
public String getField() {
53+
return field;
54+
}
55+
56+
@Override
57+
public String getFieldValue() {
58+
return field != null ? LogContext.get(field) : Defaults.UNKNOWN;
59+
}
60+
61+
@Override
62+
public List<HttpHeader> getAliases() {
63+
return aliases;
64+
}
65+
66+
public static List<HttpHeaders> propagated() {
67+
return LazyPropagatedHeaderHolder.PROPAGATED;
68+
}
69+
70+
private static class LazyPropagatedHeaderHolder {
71+
public static final List<HttpHeaders> PROPAGATED = createPropagated();
72+
73+
private static List<HttpHeaders> createPropagated() {
74+
List<HttpHeaders> propagated = new ArrayList<>();
75+
for (HttpHeaders current: values()) {
76+
if (current.isPropagated()) {
77+
propagated.add(current);
78+
}
79+
}
80+
return Collections.unmodifiableList(propagated);
81+
}
82+
}
7883
}

cf-java-logging-support-core/src/test/java/com/sap/hcp/cf/logging/common/request/HttpHeadersTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void resetLogContext() {
2424

2525
@Test
2626
public void hasCorrectNumberOfTypes() throws Exception {
27-
assertThat(HttpHeaders.values().length, is(equalTo(7)));
27+
assertThat(HttpHeaders.values().length, is(equalTo(8)));
2828
}
2929

3030
@Test
@@ -78,7 +78,8 @@ public void hasCorrectAliases() throws Exception {
7878

7979
@Test
8080
public void propagatesCorrectHeaders() throws Exception {
81-
assertThat(HttpHeaders.propagated(), containsInAnyOrder(HttpHeaders.CORRELATION_ID, HttpHeaders.TENANT_ID, HttpHeaders.X_VCAP_REQUEST_ID));
81+
assertThat(HttpHeaders.propagated(), containsInAnyOrder(HttpHeaders.CORRELATION_ID, HttpHeaders.SAP_PASSPORT,
82+
HttpHeaders.TENANT_ID, HttpHeaders.X_VCAP_REQUEST_ID));
8283
}
8384

8485
}

cf-java-logging-support-servlet/src/test/java/com/sap/hcp/cf/logging/servlet/filter/RequestLogTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,18 @@ public void logsTenantIdFromRequestHeader() throws Exception {
135135
}
136136
}
137137

138+
@Test
139+
public void logsSapPassportFromRequestHeader() throws Exception {
140+
String passport =
141+
"2a54482a0300e60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a54482a";
142+
HttpGet get = createRequestWithHeader(HttpHeaders.SAP_PASSPORT.getName(), passport);
143+
try (CloseableHttpResponse response = client.execute(get)) {
144+
assertThat("Application log without passport.", getRequestMessage(), hasEntry(Fields.SAP_PASSPORT,
145+
passport));
146+
assertThat("Request log without passport.", getRequestLog(), hasEntry(Fields.SAP_PASSPORT, passport));
147+
}
148+
}
149+
138150
@Test
139151
public void writesCorrelationIdFromHeadersAsResponseHeader() throws Exception {
140152
String correlationId = UUID.randomUUID().toString();

0 commit comments

Comments
 (0)