Skip to content

Commit 6404e0a

Browse files
committed
[#9623] Remove private pinpoint error data on PinpointErrorAttributes
1 parent 7374de4 commit 6404e0a

File tree

2 files changed

+28
-60
lines changed

2 files changed

+28
-60
lines changed

web/src/main/java/com/navercorp/pinpoint/web/view/error/PinpointErrorAttributes.java

+3-14
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,20 @@
44
import org.springframework.boot.web.servlet.error.DefaultErrorAttributes;
55
import org.springframework.stereotype.Component;
66
import org.springframework.web.context.request.WebRequest;
7-
import org.springframework.web.servlet.ModelAndView;
8-
9-
import javax.servlet.http.HttpServletRequest;
10-
import javax.servlet.http.HttpServletResponse;
117
import java.util.Map;
128

139
@Component
1410
public class PinpointErrorAttributes extends DefaultErrorAttributes {
1511

16-
private PinpointErrorData pinpointErrorData;
17-
18-
@Override
19-
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
20-
this.pinpointErrorData = new PinpointErrorData(request);
21-
return super.resolveException(request, response, handler, ex);
22-
}
23-
2412
@Override
2513
public Map<String, Object> getErrorAttributes(WebRequest webRequest, ErrorAttributeOptions options) {
2614
Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, options);
27-
this.addCustomData(errorAttributes);
15+
this.addCustomData(webRequest, errorAttributes);
2816
return errorAttributes;
2917
}
3018

31-
private void addCustomData(Map<String, Object> errorAttributes) {
19+
private void addCustomData(WebRequest webRequest, Map<String, Object> errorAttributes) {
20+
PinpointErrorData pinpointErrorData = new PinpointErrorData(webRequest);
3221
errorAttributes.put("data", pinpointErrorData);
3322
}
3423
}

web/src/main/java/com/navercorp/pinpoint/web/view/error/PinpointErrorData.java

+25-46
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
package com.navercorp.pinpoint.web.view.error;
22

33
import com.fasterxml.jackson.annotation.JsonInclude;
4+
import org.springframework.web.context.request.ServletWebRequest;
5+
import org.springframework.web.context.request.WebRequest;
46

57
import javax.servlet.http.HttpServletRequest;
6-
import java.util.List;
7-
import java.util.ArrayList;
8-
import java.util.Map;
9-
import java.util.HashMap;
10-
import java.util.Enumeration;
11-
import java.util.Collections;
8+
import java.util.*;
129

1310
@JsonInclude(JsonInclude.Include.NON_NULL)
1411
public class PinpointErrorData {
1512
private final RequestInfo requestInfo;
1613

17-
public PinpointErrorData(HttpServletRequest request) {
14+
public PinpointErrorData(WebRequest request) {
1815
this.requestInfo = new RequestInfo(request);
1916
}
2017

@@ -26,14 +23,22 @@ public static class RequestInfo {
2623
private static final String UNKNOWN = "UNKNOWN";
2724
private final String method;
2825
private final String url;
29-
private final Map<String, List<String>> headers;
30-
private final Map<String, String[]> parameters;
31-
32-
public RequestInfo(HttpServletRequest request) {
33-
this.method = request.getMethod();
34-
this.url = getRequestUrl(request);
35-
this.headers = getRequestHeaders(request);
36-
this.parameters = request.getParameterMap();;
26+
private Map<String, List<String>> headers;
27+
private Map<String, String[]> parameters;
28+
29+
public RequestInfo(WebRequest request) {
30+
if (request instanceof ServletWebRequest) {
31+
ServletWebRequest webRequest = (ServletWebRequest) request;
32+
this.method = webRequest.getRequest().getMethod();
33+
this.url = String.valueOf(webRequest.getRequest().getRequestURL());
34+
this.headers = getRequestHeader(webRequest);
35+
this.parameters = request.getParameterMap();
36+
} else {
37+
this.method = "UNKNOWN";
38+
this.url = "UNKNOWN";
39+
this.headers = null;
40+
this.parameters = null;
41+
}
3742
}
3843

3944
public String getMethod() {
@@ -52,49 +57,23 @@ public Map<String, String[]> getParameters() {
5257
return parameters;
5358
}
5459

55-
private String getRequestUrl(HttpServletRequest request) {
56-
if (request.getRequestURL() == null) {
57-
return UNKNOWN;
58-
}
59-
return request.getRequestURL().toString();
60-
}
61-
62-
private Map<String, List<String>> getRequestHeaders(HttpServletRequest request) {
63-
Enumeration<String> keys = request.getHeaderNames();
60+
private Map<String, List<String>> getRequestHeader(ServletWebRequest webRequest) {
61+
Iterator<String> keys = webRequest.getHeaderNames();
6462
if (keys == null) {
6563
return Collections.emptyMap();
6664
}
6765

6866
Map<String, List<String>> result = new HashMap<>();
69-
while (keys.hasMoreElements()) {
70-
String key = keys.nextElement();
67+
while(keys.hasNext()) {
68+
String key = keys.next();
7169
if (key == null) {
7270
continue;
7371
}
74-
75-
result.put(key, getRequestHeaderValueList(request, key));
72+
result.put(key, List.of(webRequest.getHeaderValues(key)));
7673
}
7774

7875
return result;
79-
}
80-
81-
private List<String> getRequestHeaderValueList(HttpServletRequest request, String key) {
82-
Enumeration<String> headerValues = request.getHeaders(key);
83-
if (headerValues == null) {
84-
return Collections.emptyList();
85-
}
86-
87-
List<String> headerValueList = new ArrayList<>();
88-
while (headerValues.hasMoreElements()) {
89-
String headerValue = headerValues.nextElement();
90-
if (headerValue == null) {
91-
headerValueList.add("null");
92-
} else {
93-
headerValueList.add(headerValue);
94-
}
95-
}
9676

97-
return headerValueList;
9877
}
9978

10079
@Override

0 commit comments

Comments
 (0)