2024-07-14 22:09:17 +02:00
|
|
|
package requests
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/http"
|
|
|
|
|
|
|
|
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version"
|
|
|
|
)
|
|
|
|
|
|
|
|
type userAgentTransport struct {
|
2024-10-05 17:29:37 +02:00
|
|
|
Next http.RoundTripper
|
2024-07-14 22:09:17 +02:00
|
|
|
userAgent string
|
|
|
|
}
|
|
|
|
|
|
|
|
func (t *userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) {
|
|
|
|
r := req.Clone(req.Context())
|
|
|
|
setDefaultUserAgent(r.Header, t.userAgent)
|
2024-10-05 17:29:37 +02:00
|
|
|
return t.Next.RoundTrip(r)
|
2024-07-14 22:09:17 +02:00
|
|
|
}
|
|
|
|
|
2024-10-05 17:29:37 +02:00
|
|
|
var DefaultHTTPClient = &http.Client{Transport: &DefaultTransport}
|
|
|
|
|
|
|
|
var DefaultTransport = userAgentTransport{
|
|
|
|
Next: http.DefaultTransport,
|
2024-07-14 22:09:17 +02:00
|
|
|
userAgent: "oauth2-proxy/" + version.VERSION,
|
2024-10-05 17:29:37 +02:00
|
|
|
}
|
2024-07-14 22:09:17 +02:00
|
|
|
|
|
|
|
func setDefaultUserAgent(header http.Header, userAgent string) {
|
|
|
|
if header != nil && len(header.Values("User-Agent")) == 0 {
|
|
|
|
header.Set("User-Agent", userAgent)
|
|
|
|
}
|
|
|
|
}
|