20
20
import static org .hamcrest .Matchers .*;
21
21
import static org .springframework .hateoas .mvc .ControllerLinkBuilder .*;
22
22
23
+ import java .io .IOException ;
23
24
import java .lang .reflect .Method ;
24
25
import java .util .Arrays ;
25
26
import java .util .List ;
26
27
import java .util .Optional ;
27
28
29
+ import javax .servlet .ServletException ;
30
+
28
31
import org .junit .Rule ;
29
32
import org .junit .Test ;
30
33
import org .junit .rules .ExpectedException ;
@@ -162,6 +165,8 @@ public void usesForwardedHostAsHostIfHeaderIsSet() {
162
165
163
166
request .addHeader ("X-Forwarded-Host" , "somethingDifferent" );
164
167
168
+ adaptRequestFromForwardedHeaders ();
169
+
165
170
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
166
171
assertThat (link .getHref (), startsWith ("http://somethingDifferent" ));
167
172
}
@@ -199,6 +204,8 @@ public void usesForwardedSslAndHostIfHeaderIsSet() {
199
204
request .addHeader ("X-Forwarded-Host" , "somethingDifferent" );
200
205
request .addHeader ("X-Forwarded-Ssl" , "on" );
201
206
207
+ adaptRequestFromForwardedHeaders ();
208
+
202
209
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
203
210
assertThat (link .getHref (), startsWith ("https://somethingDifferent" ));
204
211
}
@@ -270,6 +277,8 @@ public void usesForwardedHostAndPortFromHeader() {
270
277
271
278
request .addHeader ("X-Forwarded-Host" , "foobar:8088" );
272
279
280
+ adaptRequestFromForwardedHeaders ();
281
+
273
282
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
274
283
assertThat (link .getHref (), startsWith ("http://foobar:8088" ));
275
284
}
@@ -282,6 +291,8 @@ public void usesFirstHostOfXForwardedHost() {
282
291
283
292
request .addHeader ("X-Forwarded-Host" , "barfoo:8888, localhost:8088" );
284
293
294
+ adaptRequestFromForwardedHeaders ();
295
+
285
296
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
286
297
assertThat (link .getHref (), startsWith ("http://barfoo:8888" ));
287
298
}
@@ -335,6 +346,8 @@ public void usesForwardedPortFromHeader() {
335
346
request .addHeader ("X-Forwarded-Port" , "9090" );
336
347
request .setServerPort (8080 );
337
348
349
+ adaptRequestFromForwardedHeaders ();
350
+
338
351
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
339
352
340
353
assertThat (link .getHref (), startsWith ("http://foobarhost:9090/" ));
@@ -349,6 +362,8 @@ public void usesForwardedHostFromHeaderWithDefaultPort() {
349
362
request .addHeader ("X-Forwarded-Host" , "foobarhost" );
350
363
request .setServerPort (8080 );
351
364
365
+ adaptRequestFromForwardedHeaders ();
366
+
352
367
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
353
368
assertThat (link .getHref (), startsWith ("http://foobarhost/" ));
354
369
}
@@ -410,12 +425,14 @@ public void usesRootMappingOfTargetClassForMethodsOfParent() throws Exception {
410
425
* @see #257, #107
411
426
*/
412
427
@ Test
413
- public void usesXForwardedProtoHeaderAsLinkSchema () {
428
+ public void usesXForwardedProtoHeaderAsLinkSchema () throws ServletException , IOException {
414
429
415
430
for (String proto : Arrays .asList ("http" , "https" )) {
416
431
417
432
setUp ();
418
433
request .addHeader ("X-Forwarded-Proto" , proto );
434
+
435
+ adaptRequestFromForwardedHeaders ();
419
436
420
437
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
421
438
assertThat (link .getHref (), startsWith (proto + "://" ));
@@ -433,6 +450,8 @@ public void usesProtoValueFromForwardedHeaderAsLinkSchema() {
433
450
setUp ();
434
451
request .addHeader ("Forwarded" , new String [] { "proto=" + proto });
435
452
453
+ adaptRequestFromForwardedHeaders ();
454
+
436
455
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
437
456
assertThat (link .getHref (), startsWith (proto .concat ("://" )));
438
457
}
@@ -445,7 +464,9 @@ public void usesProtoValueFromForwardedHeaderAsLinkSchema() {
445
464
public void favorsStandardForwardHeaderOverXForwardedProto () {
446
465
447
466
request .addHeader ("X-Forwarded-Proto" , "foo" );
448
- request .addHeader (ForwardedHeader .NAME , "proto=bar" );
467
+ request .addHeader ("Forwarded" , "proto=bar" );
468
+
469
+ adaptRequestFromForwardedHeaders ();
449
470
450
471
Link link = linkTo (PersonControllerImpl .class ).withSelfRel ();
451
472
assertThat (link .getHref (), startsWith ("bar://" ));
@@ -527,6 +548,8 @@ public void supportsTwoProxiesAddingXForwardedPort() {
527
548
request .addHeader ("X-Forwarded-Port" , "1443,8443" );
528
549
request .addHeader ("X-Forwarded-Host" , "proxy1,proxy2" );
529
550
551
+ adaptRequestFromForwardedHeaders ();
552
+
530
553
assertThat (linkTo (PersonControllerImpl .class ).withSelfRel ().getHref (), startsWith ("http://proxy1:1443" ));
531
554
}
532
555
0 commit comments