File tree Expand file tree Collapse file tree 3 files changed +32
-23
lines changed
logback-access-jetty12/src/main/java/ch/qos/logback/access/jetty Expand file tree Collapse file tree 3 files changed +32
-23
lines changed Original file line number Diff line number Diff line change
1
+ package ch .qos .logback .access .jetty ;
2
+
3
+ import org .eclipse .jetty .http .HttpField ;
4
+ import org .eclipse .jetty .http .HttpFields ;
5
+
6
+ import java .util .Map ;
7
+ import java .util .TreeMap ;
8
+
9
+ class HeaderUtil {
10
+ static Map <String , String > buildHeaderMap (HttpFields headers ) {
11
+ Map <String , String > requestHeaderMap = new TreeMap <>(String .CASE_INSENSITIVE_ORDER );
12
+ for (HttpField f : headers ) {
13
+ String existing = requestHeaderMap .get (f .getName ());
14
+ String value = combine (existing , f .getValue ());
15
+ requestHeaderMap .put (f .getName (), value );
16
+ }
17
+ return requestHeaderMap ;
18
+ }
19
+
20
+ private static String combine (String existing , String field ) {
21
+ if (existing == null ) {
22
+ return field ;
23
+ } else {
24
+ return existing + "," + field ;
25
+ }
26
+ }
27
+ }
Original file line number Diff line number Diff line change 14
14
package ch .qos .logback .access .jetty ;
15
15
16
16
import ch .qos .logback .access .common .spi .ServerAdapter ;
17
-
18
- import org .eclipse .jetty .http .HttpField ;
19
- import org .eclipse .jetty .http .HttpFields ;
20
17
import org .eclipse .jetty .server .Request ;
21
18
import org .eclipse .jetty .server .Response ;
22
19
23
- import java .util .Enumeration ;
24
- import java .util .HashMap ;
25
20
import java .util .Map ;
26
21
22
+ import static ch .qos .logback .access .jetty .HeaderUtil .buildHeaderMap ;
23
+
27
24
/**
28
25
* A jetty specific implementation of the {@link ServerAdapter} interface.
29
26
*
@@ -57,16 +54,7 @@ public long getRequestTimestamp() {
57
54
58
55
@ Override
59
56
public Map <String , String > buildResponseHeaderMap () {
60
- Map <String , String > responseHeaderMap = new HashMap <String , String >();
61
- HttpFields .Mutable httpFields = response .getHeaders ();
62
-
63
- for (HttpField field : httpFields ) {
64
- String key = field .getName ();
65
- String value = field .getValue ();
66
- responseHeaderMap .put (key , value );
67
- }
68
-
69
- return responseHeaderMap ;
57
+ return buildHeaderMap (response .getHeaders ());
70
58
}
71
59
72
60
}
Original file line number Diff line number Diff line change 17
17
import jakarta .servlet .http .HttpUpgradeHandler ;
18
18
import jakarta .servlet .http .Part ;
19
19
import org .eclipse .jetty .http .HttpCookie ;
20
- import org .eclipse .jetty .http .HttpField ;
21
20
import org .eclipse .jetty .http .HttpScheme ;
22
- import org .eclipse .jetty .http .HttpURI ;
23
21
import org .eclipse .jetty .http .HttpVersion ;
24
22
import org .eclipse .jetty .server .Request ;
25
23
import org .eclipse .jetty .server .Session ;
37
35
import java .util .Locale ;
38
36
import java .util .Map ;
39
37
import java .util .Set ;
40
- import java .util .TreeMap ;
41
38
import java .util .stream .Collectors ;
42
39
43
40
import static ch .qos .logback .access .common .spi .IAccessEvent .NA ;
41
+ import static ch .qos .logback .access .jetty .HeaderUtil .buildHeaderMap ;
44
42
import static java .nio .charset .StandardCharsets .UTF_8 ;
45
43
46
44
public class RequestWrapper implements HttpServletRequest , WrappedHttpRequest {
@@ -92,11 +90,7 @@ public Enumeration<String> getHeaderNames() {
92
90
93
91
@ Override
94
92
public Map <String , String > buildRequestHeaderMap () {
95
- Map <String , String > requestHeaderMap = new TreeMap <>(String .CASE_INSENSITIVE_ORDER );
96
- for (HttpField f : request .getHeaders ()) {
97
- requestHeaderMap .put (f .getName (), f .getValue ());
98
- }
99
- return requestHeaderMap ;
93
+ return buildHeaderMap (request .getHeaders ());
100
94
}
101
95
102
96
@ Override
You can’t perform that action at this time.
0 commit comments