@@ -48,6 +48,7 @@ public class ForwardedHeaderFilterTests {
48
48
private static final String X_FORWARDED_HOST = "x-forwarded-host" ;
49
49
private static final String X_FORWARDED_PORT = "x-forwarded-port" ;
50
50
private static final String X_FORWARDED_PREFIX = "x-forwarded-prefix" ;
51
+ private static final String X_FORWARDED_SSL = "x-forwarded-ssl" ;
51
52
52
53
53
54
private final ForwardedHeaderFilter filter = new ForwardedHeaderFilter ();
@@ -221,6 +222,7 @@ public void shouldFilter() {
221
222
testShouldFilter (X_FORWARDED_HOST );
222
223
testShouldFilter (X_FORWARDED_PORT );
223
224
testShouldFilter (X_FORWARDED_PROTO );
225
+ testShouldFilter (X_FORWARDED_SSL );
224
226
}
225
227
226
228
private void testShouldFilter (String headerName ) {
@@ -263,6 +265,7 @@ public void forwardedRequestInRemoveOnlyMode() throws Exception {
263
265
this .request .addHeader (X_FORWARDED_PROTO , "https" );
264
266
this .request .addHeader (X_FORWARDED_HOST , "84.198.58.199" );
265
267
this .request .addHeader (X_FORWARDED_PORT , "443" );
268
+ this .request .addHeader (X_FORWARDED_SSL , "on" );
266
269
this .request .addHeader ("foo" , "bar" );
267
270
268
271
this .filter .setRemoveOnly (true );
@@ -278,6 +281,30 @@ public void forwardedRequestInRemoveOnlyMode() throws Exception {
278
281
assertNull (actual .getHeader (X_FORWARDED_PROTO ));
279
282
assertNull (actual .getHeader (X_FORWARDED_HOST ));
280
283
assertNull (actual .getHeader (X_FORWARDED_PORT ));
284
+ assertNull (actual .getHeader (X_FORWARDED_SSL ));
285
+ assertEquals ("bar" , actual .getHeader ("foo" ));
286
+ }
287
+
288
+ @ Test
289
+ public void forwardedRequestWithSsl () throws Exception {
290
+ this .request .setRequestURI ("/mvc-showcase" );
291
+ this .request .addHeader (X_FORWARDED_SSL , "on" );
292
+ this .request .addHeader (X_FORWARDED_HOST , "84.198.58.199" );
293
+ this .request .addHeader (X_FORWARDED_PORT , "443" );
294
+ this .request .addHeader ("foo" , "bar" );
295
+
296
+ this .filter .doFilter (this .request , new MockHttpServletResponse (), this .filterChain );
297
+ HttpServletRequest actual = (HttpServletRequest ) this .filterChain .getRequest ();
298
+
299
+ assertEquals ("https://84.198.58.199/mvc-showcase" , actual .getRequestURL ().toString ());
300
+ assertEquals ("https" , actual .getScheme ());
301
+ assertEquals ("84.198.58.199" , actual .getServerName ());
302
+ assertEquals (443 , actual .getServerPort ());
303
+ assertTrue (actual .isSecure ());
304
+
305
+ assertNull (actual .getHeader (X_FORWARDED_SSL ));
306
+ assertNull (actual .getHeader (X_FORWARDED_HOST ));
307
+ assertNull (actual .getHeader (X_FORWARDED_PORT ));
281
308
assertEquals ("bar" , actual .getHeader ("foo" ));
282
309
}
283
310
0 commit comments