32 lines
		
	
	
		
			736 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			736 B
		
	
	
	
		
			Go
		
	
	
	
package requests
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/version"
 | 
						|
)
 | 
						|
 | 
						|
type userAgentTransport struct {
 | 
						|
	next      http.RoundTripper
 | 
						|
	userAgent string
 | 
						|
}
 | 
						|
 | 
						|
func (t *userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) {
 | 
						|
	r := req.Clone(req.Context())
 | 
						|
	setDefaultUserAgent(r.Header, t.userAgent)
 | 
						|
	return t.next.RoundTrip(r)
 | 
						|
}
 | 
						|
 | 
						|
var DefaultHTTPClient = &http.Client{Transport: &userAgentTransport{
 | 
						|
	next:      DefaultTransport,
 | 
						|
	userAgent: "oauth2-proxy/" + version.VERSION,
 | 
						|
}}
 | 
						|
 | 
						|
var DefaultTransport = http.DefaultTransport
 | 
						|
 | 
						|
func setDefaultUserAgent(header http.Header, userAgent string) {
 | 
						|
	if header != nil && len(header.Values("User-Agent")) == 0 {
 | 
						|
		header.Set("User-Agent", userAgent)
 | 
						|
	}
 | 
						|
}
 |