@@ -403,30 +403,27 @@ private void proxy() {
403
403
404
404
private void appendXForwarded (URI uri ) {
405
405
// Append the legacy headers if they were already added upstream
406
- String host = headers .getFirst ("x-forwarded-host" );
407
- if (host == null ) {
408
- return ;
409
- }
410
- host = host + "," + uri .getHost ();
411
- headers .set ("x-forwarded-host" , host );
412
- String proto = headers .getFirst ("x-forwarded-proto" );
413
- if (proto == null ) {
414
- return ;
415
- }
416
- proto = proto + "," + uri .getScheme ();
417
- headers .set ("x-forwarded-proto" , proto );
406
+ appendXForwardedHeader ("x-forwarded-host" , () -> uri .getHost ());
407
+ appendXForwardedHeader ("x-forwarded-proto" , () -> uri .getScheme ());
408
+ }
409
+
410
+ private void appendXForwardedHeader (String headerName , Supplier <String > uriValue ) {
411
+ String existingValue = headers .getFirst (headerName );
412
+ if (existingValue != null ) {
413
+ StringBuilder builder = new StringBuilder (existingValue );
414
+ builder .append ("," ).append (uriValue .get ());
415
+ headers .set (headerName , builder .toString ());
416
+ }
418
417
}
419
418
420
419
private void appendForwarded (URI uri ) {
421
420
String forwarded = headers .getFirst ("forwarded" );
422
- if (forwarded != null ) {
423
- forwarded = forwarded + "," ;
424
- }
425
- else {
426
- forwarded = "" ;
421
+ StringBuilder sb = new StringBuilder ();
422
+ if (StringUtils .hasText (forwarded )) {
423
+ sb .append (forwarded ).append ("," );
427
424
}
428
- forwarded = forwarded + forwarded (uri , webRequest .getHeader ("host" ));
429
- headers .set ("forwarded" , forwarded );
425
+ sb . append ( forwarded (uri , webRequest .getHeader ("host" ) ));
426
+ headers .set ("forwarded" , sb . toString () );
430
427
}
431
428
432
429
private String forwarded (URI uri , String hostHeader ) {
0 commit comments