From e7adc83cf0ca025c7cfc399dee7da93c04983656 Mon Sep 17 00:00:00 2001 From: Brett Porter Date: Fri, 12 Sep 2008 00:30:47 +0000 Subject: [PATCH] [MRM-834] use Apache 2.0 mod_proxy header if available for those that don't want to use ProxyPreserveHost git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@694564 13f79535-47bb-0310-9956-ffa450edef68 --- .../maven/archiva/web/util/ContextUtils.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java index 55c2e54ac..3cdb25caf 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java @@ -80,15 +80,7 @@ public class ContextUtils StringBuffer baseUrl = new StringBuffer(); baseUrl.append( request.getScheme() ).append( "://" ); - baseUrl.append( request.getServerName() ); - int portnum = request.getServerPort(); - - // Only add port if non-standard. - Integer defaultPortnum = (Integer) defaultSchemePortMap.get( request.getScheme() ); - if ( ( defaultPortnum == null ) || ( defaultPortnum.intValue() != portnum ) ) - { - baseUrl.append( ":" ).append( String.valueOf( portnum ) ); - } + baseUrl.append( getServerName( request ) ); baseUrl.append( request.getContextPath() ); if ( StringUtils.isNotBlank( resource ) ) @@ -103,4 +95,23 @@ public class ContextUtils return baseUrl.toString(); } + + private static String getServerName( HttpServletRequest request ) + { + String name = request.getHeader( "X-Forwarded-Host" ); + if ( name == null ) + { + name = request.getServerName(); + int portnum = request.getServerPort(); + + // Only add port if non-standard. + Integer defaultPortnum = (Integer) defaultSchemePortMap.get( request.getScheme() ); + if ( ( defaultPortnum == null ) || ( defaultPortnum.intValue() != portnum ) ) + { + name = name + ":" + String.valueOf( portnum ); + } + return name; + } + return name; + } } -- 2.39.5