Skip to content

Commit bc7bac8

Browse files
committed
Only retrieve values from request if they will be traced
Closes gh-14550
1 parent 3dc9364 commit bc7bac8

File tree

1 file changed

+35
-19
lines changed

1 file changed

+35
-19
lines changed

spring-boot-actuator/src/main/java/org/springframework/boot/actuate/trace/WebRequestTraceFilter.java

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ protected void doFilterInternal(HttpServletRequest request,
123123
private void addSessionIdIfNecessary(HttpServletRequest request,
124124
Map<String, Object> trace) {
125125
HttpSession session = request.getSession(false);
126-
add(trace, Include.SESSION_ID, "sessionId",
127-
(session != null) ? session.getId() : null);
126+
if (isIncluded(Include.SESSION_ID)) {
127+
add(trace, "sessionId", (session != null) ? session.getId() : null);
128+
}
128129
}
129130

130131
protected Map<String, Object> getTrace(HttpServletRequest request) {
@@ -139,22 +140,37 @@ protected Map<String, Object> getTrace(HttpServletRequest request) {
139140
if (isIncluded(Include.REQUEST_HEADERS)) {
140141
headers.put("request", getRequestHeaders(request));
141142
}
142-
add(trace, Include.PATH_INFO, "pathInfo", request.getPathInfo());
143-
add(trace, Include.PATH_TRANSLATED, "pathTranslated",
144-
request.getPathTranslated());
145-
add(trace, Include.CONTEXT_PATH, "contextPath", request.getContextPath());
146-
add(trace, Include.USER_PRINCIPAL, "userPrincipal",
147-
(userPrincipal != null) ? userPrincipal.getName() : null);
143+
if (isIncluded(Include.PATH_INFO)) {
144+
add(trace, "pathInfo", request.getPathInfo());
145+
}
146+
if (isIncluded(Include.PATH_TRANSLATED)) {
147+
add(trace, "pathTranslated", request.getPathTranslated());
148+
}
149+
if (isIncluded(Include.CONTEXT_PATH)) {
150+
add(trace, "contextPath", request.getContextPath());
151+
}
152+
if (isIncluded(Include.USER_PRINCIPAL)) {
153+
add(trace, "userPrincipal",
154+
(userPrincipal != null) ? userPrincipal.getName() : null);
155+
}
148156
if (isIncluded(Include.PARAMETERS)) {
149-
trace.put("parameters", getParameterMapCopy(request));
157+
add(trace, "parameters", getParameterMapCopy(request));
158+
}
159+
if (isIncluded(Include.QUERY_STRING)) {
160+
add(trace, "query", request.getQueryString());
161+
}
162+
if (isIncluded(Include.AUTH_TYPE)) {
163+
add(trace, "authType", request.getAuthType());
164+
}
165+
if (isIncluded(Include.REMOTE_ADDRESS)) {
166+
add(trace, "remoteAddress", request.getRemoteAddr());
167+
}
168+
if (isIncluded(Include.REMOTE_USER)) {
169+
add(trace, "remoteUser", request.getRemoteUser());
150170
}
151-
add(trace, Include.QUERY_STRING, "query", request.getQueryString());
152-
add(trace, Include.AUTH_TYPE, "authType", request.getAuthType());
153-
add(trace, Include.REMOTE_ADDRESS, "remoteAddress", request.getRemoteAddr());
154-
add(trace, Include.REMOTE_USER, "remoteUser", request.getRemoteUser());
155171
if (isIncluded(Include.ERRORS) && exception != null
156172
&& this.errorAttributes != null) {
157-
trace.put("error", this.errorAttributes
173+
add(trace, "error", this.errorAttributes
158174
.getErrorAttributes(new ServletRequestAttributes(request), true));
159175
}
160176
return trace;
@@ -210,8 +226,9 @@ protected void postProcessRequestHeaders(Map<String, Object> headers) {
210226

211227
private void addTimeTaken(Map<String, Object> trace, long startTime) {
212228
long timeTaken = System.nanoTime() - startTime;
213-
add(trace, Include.TIME_TAKEN, "timeTaken",
214-
"" + TimeUnit.NANOSECONDS.toMillis(timeTaken));
229+
if (isIncluded(Include.TIME_TAKEN)) {
230+
add(trace, "timeTaken", "" + TimeUnit.NANOSECONDS.toMillis(timeTaken));
231+
}
215232
}
216233

217234
@SuppressWarnings("unchecked")
@@ -245,9 +262,8 @@ private void logTrace(HttpServletRequest request, Map<String, Object> trace) {
245262
}
246263
}
247264

248-
private void add(Map<String, Object> trace, Include include, String name,
249-
Object value) {
250-
if (isIncluded(include) && value != null) {
265+
private void add(Map<String, Object> trace, String name, Object value) {
266+
if (value != null) {
251267
trace.put(name, value);
252268
}
253269
}

0 commit comments

Comments
 (0)