From: Brett Porter Date: Fri, 12 Sep 2008 00:34:57 +0000 (+0000) Subject: [MRM-834] use Apache 2.0 mod_proxy header if available for those that don't want... X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c55236937bbcf345490575c7db580779f7e3909c;p=archiva.git [MRM-834] use Apache 2.0 mod_proxy header if available for those that don't want to use ProxyPreserveHost Merged from: r694564 on trunk git-svn-id: https://svn.apache.org/repos/asf/archiva/branches@694565 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/archiva-1.1.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java b/archiva-1.1.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java index 55c2e54ac..3cdb25caf 100644 --- a/archiva-1.1.x/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/util/ContextUtils.java +++ b/archiva-1.1.x/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; + } }