1
1
/*
2
- * Copyright 2002-2017 the original author or authors.
2
+ * Copyright 2002-2019 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
17
17
package org .springframework .web .filter ;
18
18
19
19
import java .io .IOException ;
20
+ import java .nio .charset .StandardCharsets ;
20
21
import javax .servlet .FilterChain ;
21
22
import javax .servlet .ServletException ;
22
23
import javax .servlet .ServletRequest ;
@@ -100,24 +101,41 @@ public void noQueryStringAvailable() throws Exception {
100
101
assertTrue (filter .afterRequestMessage .contains ("[uri=/hotels]" ));
101
102
}
102
103
104
+ @ Test
105
+ public void headers () throws Exception {
106
+ final MockHttpServletRequest request = new MockHttpServletRequest ("POST" , "/hotels" );
107
+ request .setContentType ("application/json" );
108
+ request .addHeader ("token" , "123" );
109
+ MockHttpServletResponse response = new MockHttpServletResponse ();
110
+
111
+ FilterChain filterChain = new NoOpFilterChain ();
112
+ filter .setIncludeHeaders (true );
113
+ filter .setHeaderPredicate (name -> !name .equalsIgnoreCase ("token" ));
114
+ filter .doFilter (request , response , filterChain );
115
+
116
+ assertNotNull (filter .beforeRequestMessage );
117
+ assertEquals ("Before request [uri=/hotels;headers=[Content-Type:\" application/json\" , token:\" masked\" ]]" ,
118
+ filter .beforeRequestMessage );
119
+
120
+ assertNotNull (filter .afterRequestMessage );
121
+ assertEquals ("After request [uri=/hotels;headers=[Content-Type:\" application/json\" , token:\" masked\" ]]" ,
122
+ filter .afterRequestMessage );
123
+ }
124
+
103
125
@ Test
104
126
public void payloadInputStream () throws Exception {
105
127
filter .setIncludePayload (true );
106
128
107
129
final MockHttpServletRequest request = new MockHttpServletRequest ("POST" , "/hotels" );
108
130
MockHttpServletResponse response = new MockHttpServletResponse ();
109
131
110
- final byte [] requestBody = "Hello World" .getBytes ("UTF-8" );
132
+ final byte [] requestBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
111
133
request .setContent (requestBody );
112
134
113
- FilterChain filterChain = new FilterChain () {
114
- @ Override
115
- public void doFilter (ServletRequest filterRequest , ServletResponse filterResponse )
116
- throws IOException , ServletException {
117
- ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
118
- byte [] buf = FileCopyUtils .copyToByteArray (filterRequest .getInputStream ());
119
- assertArrayEquals (requestBody , buf );
120
- }
135
+ FilterChain filterChain = (filterRequest , filterResponse ) -> {
136
+ ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
137
+ byte [] buf = FileCopyUtils .copyToByteArray (filterRequest .getInputStream ());
138
+ assertArrayEquals (requestBody , buf );
121
139
};
122
140
123
141
filter .doFilter (request , response , filterChain );
@@ -134,16 +152,12 @@ public void payloadReader() throws Exception {
134
152
MockHttpServletResponse response = new MockHttpServletResponse ();
135
153
136
154
final String requestBody = "Hello World" ;
137
- request .setContent (requestBody .getBytes ("UTF-8" ));
138
-
139
- FilterChain filterChain = new FilterChain () {
140
- @ Override
141
- public void doFilter (ServletRequest filterRequest , ServletResponse filterResponse )
142
- throws IOException , ServletException {
143
- ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
144
- String buf = FileCopyUtils .copyToString (filterRequest .getReader ());
145
- assertEquals (requestBody , buf );
146
- }
155
+ request .setContent (requestBody .getBytes (StandardCharsets .UTF_8 ));
156
+
157
+ FilterChain filterChain = (filterRequest , filterResponse ) -> {
158
+ ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
159
+ String buf = FileCopyUtils .copyToString (filterRequest .getReader ());
160
+ assertEquals (requestBody , buf );
147
161
};
148
162
149
163
filter .doFilter (request , response , filterChain );
@@ -160,20 +174,16 @@ public void payloadMaxLength() throws Exception {
160
174
final MockHttpServletRequest request = new MockHttpServletRequest ("POST" , "/hotels" );
161
175
MockHttpServletResponse response = new MockHttpServletResponse ();
162
176
163
- final byte [] requestBody = "Hello World" .getBytes ("UTF-8" );
177
+ final byte [] requestBody = "Hello World" .getBytes (StandardCharsets . UTF_8 );
164
178
request .setContent (requestBody );
165
179
166
- FilterChain filterChain = new FilterChain () {
167
- @ Override
168
- public void doFilter (ServletRequest filterRequest , ServletResponse filterResponse )
169
- throws IOException , ServletException {
170
- ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
171
- byte [] buf = FileCopyUtils .copyToByteArray (filterRequest .getInputStream ());
172
- assertArrayEquals (requestBody , buf );
173
- ContentCachingRequestWrapper wrapper =
174
- WebUtils .getNativeRequest (filterRequest , ContentCachingRequestWrapper .class );
175
- assertArrayEquals ("Hel" .getBytes ("UTF-8" ), wrapper .getContentAsByteArray ());
176
- }
180
+ FilterChain filterChain = (filterRequest , filterResponse ) -> {
181
+ ((HttpServletResponse ) filterResponse ).setStatus (HttpServletResponse .SC_OK );
182
+ byte [] buf = FileCopyUtils .copyToByteArray (filterRequest .getInputStream ());
183
+ assertArrayEquals (requestBody , buf );
184
+ ContentCachingRequestWrapper wrapper =
185
+ WebUtils .getNativeRequest (filterRequest , ContentCachingRequestWrapper .class );
186
+ assertArrayEquals ("Hel" .getBytes (StandardCharsets .UTF_8 ), wrapper .getContentAsByteArray ());
177
187
};
178
188
179
189
filter .doFilter (request , response , filterChain );
0 commit comments