1
1
package com .navercorp .pinpoint .web .view .error ;
2
2
3
3
import com .fasterxml .jackson .annotation .JsonInclude ;
4
+ import org .springframework .web .context .request .ServletWebRequest ;
5
+ import org .springframework .web .context .request .WebRequest ;
4
6
5
7
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 .*;
12
9
13
10
@ JsonInclude (JsonInclude .Include .NON_NULL )
14
11
public class PinpointErrorData {
15
12
private final RequestInfo requestInfo ;
16
13
17
- public PinpointErrorData (HttpServletRequest request ) {
14
+ public PinpointErrorData (WebRequest request ) {
18
15
this .requestInfo = new RequestInfo (request );
19
16
}
20
17
@@ -26,14 +23,22 @@ public static class RequestInfo {
26
23
private static final String UNKNOWN = "UNKNOWN" ;
27
24
private final String method ;
28
25
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
+ }
37
42
}
38
43
39
44
public String getMethod () {
@@ -52,49 +57,23 @@ public Map<String, String[]> getParameters() {
52
57
return parameters ;
53
58
}
54
59
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 ();
64
62
if (keys == null ) {
65
63
return Collections .emptyMap ();
66
64
}
67
65
68
66
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 ();
71
69
if (key == null ) {
72
70
continue ;
73
71
}
74
-
75
- result .put (key , getRequestHeaderValueList (request , key ));
72
+ result .put (key , List .of (webRequest .getHeaderValues (key )));
76
73
}
77
74
78
75
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
- }
96
76
97
- return headerValueList ;
98
77
}
99
78
100
79
@ Override
0 commit comments