=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java 2011-12-22 18:14:45 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/utils/WebLinkPopulator.java 2012-03-05 09:03:35 +0000 @@ -1121,10 +1121,31 @@ public static String createRootPath( HttpServletRequest request ) { StringBuilder builder = new StringBuilder(); - builder.append( request.getScheme() ); + String xForwardedProto = request.getHeader( "X-Forwarded-Proto" ); + String xForwardedPort = request.getHeader( "X-Forwarded-Port" ); + + if ( xForwardedProto != null && (xForwardedProto.equalsIgnoreCase( "http" ) || xForwardedProto.equalsIgnoreCase( "https" )) ) + { + builder.append( xForwardedProto ); + } + else + { + builder.append( request.getScheme() ); + } + builder.append( "://" ).append( request.getServerName() ); + int port; + + try + { + port = Integer.parseInt( xForwardedPort ); + } catch ( NumberFormatException e ) + { + port = request.getServerPort(); + } + if ( request.getServerPort() != 80 && request.getServerPort() != 443 ) { builder.append( ":" ).append( request.getServerPort() );