1
0
mirror of https://github.com/oauth2-proxy/oauth2-proxy.git synced 2025-08-10 22:51:31 +02:00

fix: self signed certificate handling

This commit is contained in:
tuunit
2024-10-05 17:29:37 +02:00
parent cda641473f
commit 8fd7312a90
2 changed files with 14 additions and 11 deletions

View File

@@ -7,20 +7,22 @@ import (
) )
type userAgentTransport struct { type userAgentTransport struct {
next http.RoundTripper Next http.RoundTripper
userAgent string userAgent string
} }
func (t *userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) { func (t *userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) {
r := req.Clone(req.Context()) r := req.Clone(req.Context())
setDefaultUserAgent(r.Header, t.userAgent) setDefaultUserAgent(r.Header, t.userAgent)
return t.next.RoundTrip(r) return t.Next.RoundTrip(r)
} }
var DefaultHTTPClient = &http.Client{Transport: &userAgentTransport{ var DefaultHTTPClient = &http.Client{Transport: &DefaultTransport}
next: http.DefaultTransport,
var DefaultTransport = userAgentTransport{
Next: http.DefaultTransport,
userAgent: "oauth2-proxy/" + version.VERSION, userAgent: "oauth2-proxy/" + version.VERSION,
}} }
func setDefaultUserAgent(header http.Header, userAgent string) { func setDefaultUserAgent(header http.Header, userAgent string) {
if header != nil && len(header.Values("User-Agent")) == 0 { if header != nil && len(header.Values("User-Agent")) == 0 {

View File

@@ -13,6 +13,7 @@ import (
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/ip" "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/ip"
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger" "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/logger"
internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc" internaloidc "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/providers/oidc"
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/requests"
"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util" "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/util"
) )
@@ -30,20 +31,20 @@ func Validate(o *options.Options) error {
msgs = parseSignatureKey(o, msgs) msgs = parseSignatureKey(o, msgs)
if o.SSLInsecureSkipVerify { if o.SSLInsecureSkipVerify {
insecureTransport := &http.Transport{ transport := requests.DefaultTransport.Next.(*http.Transport).Clone()
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, // #nosec G402 -- InsecureSkipVerify is a configurable option we allow transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true} // #nosec G402 -- InsecureSkipVerify is a configurable option we allow
}
http.DefaultClient = &http.Client{Transport: insecureTransport} requests.DefaultHTTPClient = &http.Client{Transport: transport}
} else if len(o.Providers[0].CAFiles) > 0 { } else if len(o.Providers[0].CAFiles) > 0 {
pool, err := util.GetCertPool(o.Providers[0].CAFiles, o.Providers[0].UseSystemTrustStore) pool, err := util.GetCertPool(o.Providers[0].CAFiles, o.Providers[0].UseSystemTrustStore)
if err == nil { if err == nil {
transport := http.DefaultTransport.(*http.Transport).Clone() transport := requests.DefaultTransport.Next.(*http.Transport).Clone()
transport.TLSClientConfig = &tls.Config{ transport.TLSClientConfig = &tls.Config{
RootCAs: pool, RootCAs: pool,
MinVersion: tls.VersionTLS12, MinVersion: tls.VersionTLS12,
} }
http.DefaultClient = &http.Client{Transport: transport} requests.DefaultHTTPClient = &http.Client{Transport: transport}
} else { } else {
msgs = append(msgs, fmt.Sprintf("unable to load provider CA file(s): %v", err)) msgs = append(msgs, fmt.Sprintf("unable to load provider CA file(s): %v", err))
} }