mirror of
https://github.com/apache/archiva.git
synced 2025-02-07 02:29:23 +00:00
[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
This commit is contained in:
parent
f2853ab049
commit
c55236937b
@ -80,15 +80,7 @@ public static String getBaseURL( HttpServletRequest request, String resource )
|
|||||||
StringBuffer baseUrl = new StringBuffer();
|
StringBuffer baseUrl = new StringBuffer();
|
||||||
|
|
||||||
baseUrl.append( request.getScheme() ).append( "://" );
|
baseUrl.append( request.getScheme() ).append( "://" );
|
||||||
baseUrl.append( request.getServerName() );
|
baseUrl.append( getServerName( request ) );
|
||||||
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( request.getContextPath() );
|
baseUrl.append( request.getContextPath() );
|
||||||
|
|
||||||
if ( StringUtils.isNotBlank( resource ) )
|
if ( StringUtils.isNotBlank( resource ) )
|
||||||
@ -103,4 +95,23 @@ public static String getBaseURL( HttpServletRequest request, String resource )
|
|||||||
|
|
||||||
return baseUrl.toString();
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user