File tree 2 files changed +6
-12
lines changed
2 files changed +6
-12
lines changed Original file line number Diff line number Diff line change @@ -52,11 +52,6 @@ func getRequestScheme(req *http.Request) string {
52
52
return ""
53
53
}
54
54
55
- func getForwardedHost (req * http.Request ) string {
56
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host
57
- return req .Header .Get ("X-Forwarded-Host" )
58
- }
59
-
60
55
// GuessCurrentAppURL tries to guess the current full app URL (with sub-path) by http headers. It always has a '/' suffix, exactly the same as setting.AppURL
61
56
func GuessCurrentAppURL (ctx context.Context ) string {
62
57
return GuessCurrentHostURL (ctx ) + setting .AppSubURL + "/"
@@ -81,11 +76,9 @@ func GuessCurrentHostURL(ctx context.Context) string {
81
76
if reqScheme == "" {
82
77
return strings .TrimSuffix (setting .AppURL , setting .AppSubURL + "/" )
83
78
}
84
- reqHost := getForwardedHost (req )
85
- if reqHost == "" {
86
- reqHost = req .Host
87
- }
88
- return reqScheme + "://" + reqHost
79
+ // X-Forwarded-Host has many problems: non-standard, not well-defined (X-Forwarded-Port or not), conflicts with Host header.
80
+ // So do not use X-Forwarded-Host, just use Host header directly.
81
+ return reqScheme + "://" + req .Host
89
82
}
90
83
91
84
// MakeAbsoluteURL tries to make a link to an absolute URL:
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ func TestMakeAbsoluteURL(t *testing.T) {
70
70
"X-Forwarded-Proto" : {"https" },
71
71
},
72
72
})
73
- assert .Equal (t , "https://forwarded -host/foo" , MakeAbsoluteURL (ctx , "/foo" ))
73
+ assert .Equal (t , "https://user -host/foo" , MakeAbsoluteURL (ctx , "/foo" ))
74
74
}
75
75
76
76
func TestIsCurrentGiteaSiteURL (t * testing.T ) {
@@ -119,5 +119,6 @@ func TestIsCurrentGiteaSiteURL(t *testing.T) {
119
119
},
120
120
})
121
121
assert .True (t , IsCurrentGiteaSiteURL (ctx , "http://localhost:3000" ))
122
- assert .True (t , IsCurrentGiteaSiteURL (ctx , "https://forwarded-host" ))
122
+ assert .True (t , IsCurrentGiteaSiteURL (ctx , "https://user-host" ))
123
+ assert .False (t , IsCurrentGiteaSiteURL (ctx , "https://forwarded-host" ))
123
124
}
You can’t perform that action at this time.
0 commit comments