Skip to content

Commit ad0ab4f

Browse files
committed
Rename maskingHeaders to sensitiveHeaders
1 parent b7697b5 commit ad0ab4f

File tree

8 files changed

+57
-52
lines changed

8 files changed

+57
-52
lines changed

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/AbstractHeadersSanitizerBuilder.java

+16-11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.common.collect.ImmutableSet;
2626

2727
import com.linecorp.armeria.common.HttpHeaderNames;
28+
import com.linecorp.armeria.common.annotation.Nullable;
2829

2930
import io.netty.util.AsciiString;
3031

@@ -37,38 +38,42 @@ public abstract class AbstractHeadersSanitizerBuilder<T> {
3738
// - https://docs.rs/tower-http/latest/tower_http/sensitive_headers/index.html
3839
// - https://techdocs.akamai.com/edge-diagnostics/reference/sensitive-headers
3940
// - https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html#_cookies_and_sensitive_headers
40-
private static final Set<AsciiString> DEFAULT_MASKING_HEADERS =
41+
private static final Set<AsciiString> DEFAULT_SENSITIVE_HEADERS =
4142
ImmutableSet.of(HttpHeaderNames.AUTHORIZATION, HttpHeaderNames.COOKIE,
4243
HttpHeaderNames.SET_COOKIE, HttpHeaderNames.PROXY_AUTHORIZATION);
4344

44-
private final Set<AsciiString> maskingHeaders = new HashSet<>();
45+
@Nullable
46+
private Set<AsciiString> sensitiveHeaders;
4547

4648
private HeaderMaskingFunction maskingFunction = HeaderMaskingFunction.of();
4749

4850
AbstractHeadersSanitizerBuilder() {}
4951

5052
/**
51-
* Sets the headers to mask before logging.
53+
* Adds the headers to mask before logging.
5254
*/
53-
public AbstractHeadersSanitizerBuilder<T> maskingHeaders(CharSequence... headers) {
55+
public AbstractHeadersSanitizerBuilder<T> sensitiveHeaders(CharSequence... headers) {
5456
requireNonNull(headers, "headers");
55-
return maskingHeaders(ImmutableSet.copyOf(headers));
57+
return sensitiveHeaders(ImmutableSet.copyOf(headers));
5658
}
5759

5860
/**
5961
* Sets the headers to mask before logging.
6062
*/
61-
public AbstractHeadersSanitizerBuilder<T> maskingHeaders(Iterable<? extends CharSequence> headers) {
63+
public AbstractHeadersSanitizerBuilder<T> sensitiveHeaders(Iterable<? extends CharSequence> headers) {
6264
requireNonNull(headers, "headers");
63-
headers.forEach(header -> maskingHeaders.add(AsciiString.of(header).toLowerCase()));
65+
if (sensitiveHeaders == null) {
66+
sensitiveHeaders = new HashSet<>();
67+
}
68+
headers.forEach(header -> sensitiveHeaders.add(AsciiString.of(header).toLowerCase()));
6469
return this;
6570
}
6671

67-
final Set<AsciiString> maskingHeaders() {
68-
if (!maskingHeaders.isEmpty()) {
69-
return ImmutableSet.copyOf(maskingHeaders);
72+
final Set<AsciiString> sensitiveHeaders() {
73+
if (sensitiveHeaders != null) {
74+
return ImmutableSet.copyOf(sensitiveHeaders);
7075
}
71-
return DEFAULT_MASKING_HEADERS;
76+
return DEFAULT_SENSITIVE_HEADERS;
7277
}
7378

7479
/**

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/AbstractLogFormatterBuilder.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ abstract class AbstractLogFormatterBuilder<T> {
5757
* HeadersSanitizer<String> headersSanitizer =
5858
* HeadersSanitizer
5959
* .builderForText()
60-
* .maskingHeaders("Authorization", "Cookie")
60+
* .sensitiveHeaders("Authorization", "Cookie")
6161
* ...
6262
* .build();
6363
*
@@ -92,7 +92,7 @@ final HeadersSanitizer<T> requestHeadersSanitizer() {
9292
* HeadersSanitizer<String> headersSanitizer =
9393
* HeadersSanitizer
9494
* .builderForText()
95-
* .maskingHeaders("Set-Cookie")
95+
* .sensitiveHeaders("Set-Cookie")
9696
* ...
9797
* .build();
9898
*
@@ -126,7 +126,7 @@ final HeadersSanitizer<T> responseHeadersSanitizer() {
126126
* HeadersSanitizer<String> headersSanitizer =
127127
* HeadersSanitizer
128128
* .builderForText()
129-
* .maskingHeaders("...")
129+
* .sensitiveHeaders("...")
130130
* ...
131131
* .build();
132132
*
@@ -160,7 +160,7 @@ final HeadersSanitizer<T> requestTrailersSanitizer() {
160160
* HeadersSanitizer<String> headersSanitizer =
161161
* HeadersSanitizer
162162
* .builderForText()
163-
* .maskingHeaders("...")
163+
* .sensitiveHeaders("...")
164164
* ...
165165
* .build();
166166
*
@@ -194,7 +194,7 @@ final HeadersSanitizer<T> responseTrailersSanitizer() {
194194
* HeadersSanitizer<String> headersSanitizer =
195195
* HeadersSanitizer
196196
* .builderForText()
197-
* .maskingHeaders("...")
197+
* .sensitiveHeaders("...")
198198
* ...
199199
* .build();
200200
*

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/JsonHeadersSanitizer.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,21 @@
3535
final class JsonHeadersSanitizer implements HeadersSanitizer<JsonNode> {
3636

3737
static final HeadersSanitizer<JsonNode> INSTANCE = new JsonHeadersSanitizerBuilder().build();
38-
private final Set<AsciiString> maskingHeaders;
38+
private final Set<AsciiString> sensitiveHeaders;
3939
private final HeaderMaskingFunction maskingFunction;
4040
private final ObjectMapper objectMapper;
4141

42-
JsonHeadersSanitizer(Set<AsciiString> maskingHeaders, HeaderMaskingFunction maskingFunction,
42+
JsonHeadersSanitizer(Set<AsciiString> sensitiveHeaders, HeaderMaskingFunction maskingFunction,
4343
ObjectMapper objectMapper) {
44-
this.maskingHeaders = maskingHeaders;
44+
this.sensitiveHeaders = sensitiveHeaders;
4545
this.maskingFunction = maskingFunction;
4646
this.objectMapper = objectMapper;
4747
}
4848

4949
@Override
5050
public JsonNode sanitize(RequestContext requestContext, HttpHeaders headers) {
5151
final ObjectNode result = objectMapper.createObjectNode();
52-
maskHeaders(headers, maskingHeaders, maskingFunction,
52+
maskHeaders(headers, sensitiveHeaders, maskingFunction,
5353
(header, values) -> result.put(header.toString(), values.size() > 1 ?
5454
values.toString() : values.get(0)));
5555

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/JsonHeadersSanitizerBuilder.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ public final class JsonHeadersSanitizerBuilder extends AbstractHeadersSanitizerB
3333
private ObjectMapper objectMapper;
3434

3535
@Override
36-
public JsonHeadersSanitizerBuilder maskingHeaders(CharSequence... headers) {
37-
return (JsonHeadersSanitizerBuilder) super.maskingHeaders(headers);
36+
public JsonHeadersSanitizerBuilder sensitiveHeaders(CharSequence... headers) {
37+
return (JsonHeadersSanitizerBuilder) super.sensitiveHeaders(headers);
3838
}
3939

4040
@Override
41-
public JsonHeadersSanitizerBuilder maskingHeaders(Iterable<? extends CharSequence> headers) {
42-
return (JsonHeadersSanitizerBuilder) super.maskingHeaders(headers);
41+
public JsonHeadersSanitizerBuilder sensitiveHeaders(Iterable<? extends CharSequence> headers) {
42+
return (JsonHeadersSanitizerBuilder) super.sensitiveHeaders(headers);
4343
}
4444

4545
@Override
@@ -61,6 +61,6 @@ public JsonHeadersSanitizerBuilder objectMapper(ObjectMapper objectMapper) {
6161
public HeadersSanitizer<JsonNode> build() {
6262
final ObjectMapper objectMapper = this.objectMapper != null ?
6363
this.objectMapper : JacksonUtil.newDefaultObjectMapper();
64-
return new JsonHeadersSanitizer(maskingHeaders(), maskingFunction(), objectMapper);
64+
return new JsonHeadersSanitizer(sensitiveHeaders(), maskingFunction(), objectMapper);
6565
}
6666
}

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/TextHeadersSanitizer.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ final class TextHeadersSanitizer implements HeadersSanitizer<String> {
3737

3838
static final HeadersSanitizer<String> INSTANCE = new TextHeadersSanitizerBuilder().build();
3939

40-
private final Set<AsciiString> maskingHeaders;
40+
private final Set<AsciiString> sensitiveHeaders;
4141

4242
private final HeaderMaskingFunction maskingFunction;
4343

44-
TextHeadersSanitizer(Set<AsciiString> maskingHeaders,
44+
TextHeadersSanitizer(Set<AsciiString> sensitiveHeaders,
4545
HeaderMaskingFunction maskingFunction) {
46-
this.maskingHeaders = maskingHeaders;
46+
this.sensitiveHeaders = sensitiveHeaders;
4747
this.maskingFunction = maskingFunction;
4848
}
4949

@@ -60,7 +60,7 @@ public String sanitize(RequestContext ctx, HttpHeaders headers) {
6060
sb.append('[');
6161
}
6262

63-
maskHeaders(headers, maskingHeaders, maskingFunction,
63+
maskHeaders(headers, sensitiveHeaders, maskingFunction,
6464
(header, values) -> sb.append(header).append('=')
6565
.append(values.size() > 1 ?
6666
values.toString() : values.get(0)).append(", "));
@@ -70,12 +70,12 @@ public String sanitize(RequestContext ctx, HttpHeaders headers) {
7070
}
7171

7272
static void maskHeaders(
73-
HttpHeaders headers, Set<AsciiString> maskingHeaders,
73+
HttpHeaders headers, Set<AsciiString> sensitiveHeaders,
7474
HeaderMaskingFunction maskingFunction,
7575
BiConsumer<AsciiString, List<String>> consumer) {
7676
for (AsciiString headerName : headers.names()) {
7777
List<String> values = headers.getAll(headerName);
78-
if (maskingHeaders.contains(headerName)) {
78+
if (sensitiveHeaders.contains(headerName)) {
7979
// Mask the header values.
8080
if (values.size() == 1) {
8181
final String masked = maskingFunction.mask(headerName, values.get(0));

Diff for: core/src/main/java/com/linecorp/armeria/common/logging/TextHeadersSanitizerBuilder.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
public final class TextHeadersSanitizerBuilder extends AbstractHeadersSanitizerBuilder<String> {
2323

2424
@Override
25-
public TextHeadersSanitizerBuilder maskingHeaders(CharSequence... headers) {
26-
return (TextHeadersSanitizerBuilder) super.maskingHeaders(headers);
25+
public TextHeadersSanitizerBuilder sensitiveHeaders(CharSequence... headers) {
26+
return (TextHeadersSanitizerBuilder) super.sensitiveHeaders(headers);
2727
}
2828

2929
@Override
30-
public TextHeadersSanitizerBuilder maskingHeaders(Iterable<? extends CharSequence> headers) {
31-
return (TextHeadersSanitizerBuilder) super.maskingHeaders(headers);
30+
public TextHeadersSanitizerBuilder sensitiveHeaders(Iterable<? extends CharSequence> headers) {
31+
return (TextHeadersSanitizerBuilder) super.sensitiveHeaders(headers);
3232
}
3333

3434
@Override
@@ -40,6 +40,6 @@ public TextHeadersSanitizerBuilder maskingFunction(HeaderMaskingFunction masking
4040
* Returns a newly created text {@link HeadersSanitizer} based on the properties of this builder.
4141
*/
4242
public HeadersSanitizer<String> build() {
43-
return new TextHeadersSanitizer(maskingHeaders(), maskingFunction());
43+
return new TextHeadersSanitizer(sensitiveHeaders(), maskingFunction());
4444
}
4545
}

Diff for: core/src/test/java/com/linecorp/armeria/common/logging/JsonLogFormatterTest.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ void maskSensitiveHeadersByDefault() {
7979
}
8080

8181
@Test
82-
void defaultMaskingHeadersShouldBeOverridable() {
82+
void defaultSensitiveHeadersShouldBeOverridable() {
8383
final LogFormatter logFormatter = LogFormatter.builderForJson()
8484
.responseHeadersSanitizer(
8585
HeadersSanitizer.builderForJson()
86-
.maskingHeaders("Cache-Control")
86+
.sensitiveHeaders("Cache-Control")
8787
.build())
8888
.build();
8989
final ServiceRequestContext ctx = ServiceRequestContext.of(HttpRequest.of(HttpMethod.GET, "/hello"));
@@ -108,7 +108,7 @@ void maskRequestHeaders() {
108108
final LogFormatter logFormatter = LogFormatter.builderForJson()
109109
.requestHeadersSanitizer(
110110
HeadersSanitizer.builderForJson()
111-
.maskingHeaders("accept")
111+
.sensitiveHeaders("accept")
112112
.maskingFunction(maskingFunction)
113113
.build())
114114
.build();
@@ -136,7 +136,7 @@ void maskResponseHeaders() {
136136
final LogFormatter logFormatter = LogFormatter.builderForJson()
137137
.responseHeadersSanitizer(
138138
HeadersSanitizer.builderForJson()
139-
.maskingHeaders("content-type")
139+
.sensitiveHeaders("content-type")
140140
.maskingFunction(maskingFunction)
141141
.build())
142142
.build();
@@ -163,8 +163,8 @@ void maskRequestHeadersWithDuplicateHeaderName() {
163163
final LogFormatter logFormatter = LogFormatter.builderForJson()
164164
.requestHeadersSanitizer(
165165
HeadersSanitizer.builderForJson()
166-
.maskingHeaders("accept-encoding")
167-
.maskingHeaders("content-type")
166+
.sensitiveHeaders("accept-encoding")
167+
.sensitiveHeaders("content-type")
168168
.maskingFunction(maskingFunction)
169169
.build())
170170
.build();
@@ -190,7 +190,7 @@ void removeSensitiveHeaders() {
190190
LogFormatter.builderForJson()
191191
.responseHeadersSanitizer(
192192
HeadersSanitizer.builderForJson()
193-
.maskingHeaders("set-cookie", "multiple-header")
193+
.sensitiveHeaders("set-cookie", "multiple-header")
194194
.maskingFunction((name, value) -> null)
195195
.build())
196196
.build();

Diff for: core/src/test/java/com/linecorp/armeria/common/logging/TextLogFormatterTest.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ void maskSensitiveHeadersByDefault() {
8888
}
8989

9090
@Test
91-
void defaultMaskingHeadersShouldBeOverridable() {
91+
void defaultSensitiveHeadersShouldBeOverridable() {
9292
final LogFormatter logFormatter = LogFormatter.builderForText()
9393
.responseHeadersSanitizer(
9494
HeadersSanitizer.builderForText()
95-
.maskingHeaders("Cache-Control")
95+
.sensitiveHeaders("Cache-Control")
9696
.build())
9797
.build();
9898
final ServiceRequestContext ctx = ServiceRequestContext.of(HttpRequest.of(HttpMethod.GET, "/hello"));
@@ -117,8 +117,8 @@ void maskRequestHeaders() {
117117
final LogFormatter logFormatter = LogFormatter.builderForText()
118118
.requestHeadersSanitizer(
119119
HeadersSanitizer.builderForText()
120-
.maskingHeaders("cookie",
121-
"authorization")
120+
.sensitiveHeaders("cookie",
121+
"authorization")
122122
.maskingFunction(maskingFunction)
123123
.build())
124124
.build();
@@ -153,8 +153,8 @@ void maskResponseHeaders() {
153153
final LogFormatter logFormatter = LogFormatter.builderForText()
154154
.responseHeadersSanitizer(
155155
HeadersSanitizer.builderForText()
156-
.maskingHeaders("content-type",
157-
"set-cookie")
156+
.sensitiveHeaders("content-type",
157+
"set-cookie")
158158
.maskingFunction(maskingFunction)
159159
.build())
160160
.build();
@@ -187,8 +187,8 @@ void maskRequestHeadersWithDuplicateHeaderName() {
187187
final LogFormatter logFormatter = LogFormatter.builderForText()
188188
.requestHeadersSanitizer(
189189
HeadersSanitizer.builderForText()
190-
.maskingHeaders("accept-encoding")
191-
.maskingHeaders("content-type")
190+
.sensitiveHeaders("accept-encoding")
191+
.sensitiveHeaders("content-type")
192192
.maskingFunction(maskingFunction)
193193
.build())
194194
.build();
@@ -214,7 +214,7 @@ void removeSensitiveHeaders() {
214214
LogFormatter.builderForText()
215215
.responseHeadersSanitizer(
216216
HeadersSanitizer.builderForText()
217-
.maskingHeaders("set-cookie", "multiple-header")
217+
.sensitiveHeaders("set-cookie", "multiple-header")
218218
.maskingFunction((name, value) -> null)
219219
.build())
220220
.build();

0 commit comments

Comments
 (0)