Prefer X-Forwarded-Host over Host for generated URLs

This commit is contained in:
Josh Lee 2022-01-25 04:32:07 +00:00
parent fae6d13a8a
commit 7958b4c208
3 changed files with 16 additions and 4 deletions

View File

@ -21,4 +21,4 @@ COPY --from=0 /mbtileserver /mbtileserver
# Set the command as the entrypoint, so that it captures any
# command-line arguments passed in
ENTRYPOINT ["/mbtileserver"]
ENTRYPOINT ["/mbtileserver"]

View File

@ -170,7 +170,11 @@ func (s *ServiceSet) logError(format string, args ...interface{}) {
// serviceListHandler is an http.HandlerFunc that provides a listing of all
// published services in this ServiceSet
func (s *ServiceSet) serviceListHandler(w http.ResponseWriter, r *http.Request) {
rootURL := fmt.Sprintf("%s://%s%s", scheme(r), r.Host, r.URL)
host := r.Header.Get("X-Forwarded-Host")
if host == "" {
host = r.Host
}
rootURL := fmt.Sprintf("%s://%s%s", scheme(r), host, r.URL)
services := []ServiceInfo{}
// sort ids alpabetically

View File

@ -179,7 +179,11 @@ func (ts *Tileset) tileJSONHandler(w http.ResponseWriter, r *http.Request) {
query = "?" + r.URL.RawQuery
}
tilesetURL := fmt.Sprintf("%s://%s%s", scheme(r), r.Host, r.URL.Path)
host := r.Header.Get("X-Forwarded-Host")
if host == "" {
host = r.Host
}
tilesetURL := fmt.Sprintf("%s://%s%s", scheme(r), host, r.URL.Path)
tileJSON, err := ts.TileJSON(tilesetURL, query)
if err != nil {
@ -286,7 +290,11 @@ func (ts *Tileset) previewHandler(w http.ResponseWriter, r *http.Request) {
query = "?" + r.URL.RawQuery
}
tilesetURL := fmt.Sprintf("%s://%s%s", scheme(r), r.Host, strings.TrimSuffix(r.URL.Path, "/map"))
host := r.Header.Get("X-Forwarded-Host")
if host == "" {
host = r.Host
}
tilesetURL := fmt.Sprintf("%s://%s%s", scheme(r), host, strings.TrimSuffix(r.URL.Path, "/map"))
tileJSON, err := ts.TileJSON(tilesetURL, query)
if err != nil {