Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cmd/imageproxy/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ var referrers = flag.String("referrers", "", "comma separated list of allowed re
var includeReferer = flag.Bool("includeReferer", false, "include referer header in remote requests")
var followRedirects = flag.Bool("followRedirects", true, "follow redirects")
var baseURL = flag.String("baseURL", "", "default base URL for relative remote URLs")
var passRequestHeader = flag.String("passRequestHeader", "", "default authentication header")
var cache tieredCache
var signatureKeys signatureKeyList
var scaleUp = flag.Bool("scaleUp", false, "allow images to scale beyond their original dimensions")
Expand Down Expand Up @@ -79,6 +80,7 @@ func main() {
}
}

p.DefaultPassRequestHeader = *passRequestHeader
p.IncludeReferer = *includeReferer
p.FollowRedirects = *followRedirects
p.Timeout = *timeout
Expand Down
7 changes: 7 additions & 0 deletions imageproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ type Proxy struct {
// is included in remote requests.
IncludeReferer bool

// IncludeReferer controls whether the original Referer request header
// is included in remote requests.
DefaultPassRequestHeader string

// FollowRedirects controls whether imageproxy will follow redirects or not.
FollowRedirects bool

Expand Down Expand Up @@ -179,6 +183,9 @@ func (p *Proxy) serveImage(w http.ResponseWriter, r *http.Request) {
// pass along the referer header from the original request
copyHeader(actualReq.Header, r.Header, "referer")
}
if p.DefaultPassRequestHeader != "" {
actualReq.Header.Set(p.DefaultPassRequestHeader, r.Header.Get(p.DefaultPassRequestHeader))
}
if p.FollowRedirects {
// FollowRedirects is true (default), ensure that the redirected host is allowed
p.Client.CheckRedirect = func(newreq *http.Request, via []*http.Request) error {
Expand Down