@@ -79,6 +79,7 @@ public class HttpContextWeb extends HttpContext {
79
79
private static final String SAME_SITE_LAX = "Lax" ;
80
80
private static final String SAME_SITE_STRICT = "Strict" ;
81
81
private static final String SET_COOKIE = "Set-Cookie" ;
82
+ private static String httpForwardedHeadersEnabled = System .getenv ("HTTP_FORWARDEDHEADERS_ENABLED" );
82
83
83
84
public static final int BROWSER_OTHER = 0 ;
84
85
public static final int BROWSER_IE = 1 ;
@@ -630,8 +631,10 @@ public String getUserId(String key, ModelContext context, int handle, com.genexu
630
631
}
631
632
632
633
public String getRemoteAddr () {
634
+ boolean isEnabled = "true" .equalsIgnoreCase (httpForwardedHeadersEnabled );
633
635
String address = getHeader ("X-Forwarded-For" );
634
- if (address .length () > 0 ){
636
+ if (isEnabled && address != null && address .length () > 0 ) {
637
+ address = address .split ("," )[0 ].trim ();
635
638
return address ;
636
639
}
637
640
address = request .getRemoteAddr ();
@@ -948,33 +951,29 @@ public byte setCookie(String name, String value, String path, java.util.Date exp
948
951
}
949
952
950
953
public String getServerName () {
954
+ boolean isEnabled = "true" .equalsIgnoreCase (httpForwardedHeadersEnabled );
951
955
String host = getHeader ("X-Forwarded-Host" );
952
- if (host .length () > 0 ){
953
- return host ;
956
+ if (isEnabled && host != null && host .length () > 0 ) {
957
+ return host . split ( "," )[ 0 ]. trim () ;
954
958
}
955
959
String serverNameProperty = ModelContext .getModelContext ().getPreferences ().getProperty ("SERVER_NAME" , "" );
956
960
if (!StringUtils .isBlank (serverNameProperty )) {
957
961
return serverNameProperty ;
958
962
}
959
- if (request != null )
960
- return request .getServerName ();
961
-
962
- return "" ;
963
+ return request != null ? request .getServerName () : "" ;
963
964
}
964
965
965
966
public int getServerPort () {
967
+ boolean isEnabled = "true" .equalsIgnoreCase (httpForwardedHeadersEnabled );
966
968
String port = getHeader ("X-Forwarded-Port" );
967
- if (port .length () > 0 ){
968
- return Integer .parseInt (port );
969
+ if (isEnabled && port != null && port .length () > 0 ) {
970
+ port = port .split ("," )[0 ].trim ();
971
+ return Integer .parseInt (port );
969
972
}
970
973
String serverPortProperty = ModelContext .getModelContext ().getPreferences ().getProperty ("SERVER_PORT" , "" );
971
974
if (!StringUtils .isBlank (serverPortProperty )) {
972
975
return Integer .parseInt (serverPortProperty );
973
976
}
974
- String serverNameProperty = ModelContext .getModelContext ().getPreferences ().getProperty ("SERVER_NAME" , "" );
975
- if (serverNameProperty .indexOf (':' ) != -1 ) {
976
- return 80 ;
977
- }
978
977
if (request != null ) {
979
978
return request .getServerPort ();
980
979
}
0 commit comments