Skip to content

Commit 24d577f

Browse files
authored
Merge pull request #1086 from dsteinkopf/master
fix baseURL handling in HttpUtils, fixes #1083
2 parents a502d96 + a1ef8e9 commit 24d577f

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/main/java/com/gitblit/utils/HttpUtils.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public static String getGitblitURL(HttpServletRequest request) {
7878
}
7979
}
8080

81+
// try to use reverse-proxy's context
8182
String context = request.getContextPath();
8283
String forwardedContext = request.getHeader("X-Forwarded-Context");
8384
if (StringUtils.isEmpty(forwardedContext)) {
@@ -92,13 +93,24 @@ public static String getGitblitURL(HttpServletRequest request) {
9293
context = context.substring(1);
9394
}
9495

96+
// try to use reverse-proxy's hostname
97+
String host = request.getServerName();
98+
String forwardedHost = request.getHeader("X-Forwarded-Host");
99+
if (StringUtils.isEmpty(forwardedHost)) {
100+
forwardedHost = request.getHeader("X_Forwarded_Host");
101+
}
102+
if (!StringUtils.isEmpty(forwardedHost)) {
103+
host = forwardedHost;
104+
}
105+
106+
// build result
95107
StringBuilder sb = new StringBuilder();
96108
sb.append(scheme);
97109
sb.append("://");
98-
sb.append(request.getServerName());
110+
sb.append(host);
99111
if (("http".equals(scheme) && port != 80)
100112
|| ("https".equals(scheme) && port != 443)) {
101-
sb.append(":" + port);
113+
sb.append(":").append(port);
102114
}
103115
sb.append(context);
104116
return sb.toString();

0 commit comments

Comments
 (0)