outposts: fix unlabeled transaction
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -11,6 +11,7 @@ import ( | |||||||
| 	"syscall" | 	"syscall" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/getsentry/sentry-go" | ||||||
| 	"github.com/google/uuid" | 	"github.com/google/uuid" | ||||||
| 	"github.com/gorilla/websocket" | 	"github.com/gorilla/websocket" | ||||||
| 	"github.com/prometheus/client_golang/prometheus" | 	"github.com/prometheus/client_golang/prometheus" | ||||||
| @ -46,11 +47,13 @@ type APIController struct { | |||||||
|  |  | ||||||
| // NewAPIController initialise new API Controller instance from URL and API token | // NewAPIController initialise new API Controller instance from URL and API token | ||||||
| func NewAPIController(akURL url.URL, token string) *APIController { | func NewAPIController(akURL url.URL, token string) *APIController { | ||||||
|  | 	rsp := sentry.StartSpan(context.TODO(), "authentik.outposts.init") | ||||||
|  |  | ||||||
| 	config := api.NewConfiguration() | 	config := api.NewConfiguration() | ||||||
| 	config.Host = akURL.Host | 	config.Host = akURL.Host | ||||||
| 	config.Scheme = akURL.Scheme | 	config.Scheme = akURL.Scheme | ||||||
| 	config.HTTPClient = &http.Client{ | 	config.HTTPClient = &http.Client{ | ||||||
| 		Transport: NewUserAgentTransport(constants.OutpostUserAgent(), NewTracingTransport(context.TODO(), GetTLSTransport())), | 		Transport: NewUserAgentTransport(constants.OutpostUserAgent(), NewTracingTransport(rsp.Context(), GetTLSTransport())), | ||||||
| 	} | 	} | ||||||
| 	config.AddDefaultHeader("Authorization", fmt.Sprintf("Bearer %s", token)) | 	config.AddDefaultHeader("Authorization", fmt.Sprintf("Bearer %s", token)) | ||||||
|  |  | ||||||
|  | |||||||
| @ -73,7 +73,7 @@ func NewFlowExecutor(ctx context.Context, flowSlug string, refConfig *api.Config | |||||||
| 	config.Scheme = refConfig.Scheme | 	config.Scheme = refConfig.Scheme | ||||||
| 	config.HTTPClient = &http.Client{ | 	config.HTTPClient = &http.Client{ | ||||||
| 		Jar:       jar, | 		Jar:       jar, | ||||||
| 		Transport: ak.NewUserAgentTransport(constants.OutpostUserAgent(), ak.NewTracingTransport(ctx, ak.GetTLSTransport())), | 		Transport: ak.NewUserAgentTransport(constants.OutpostUserAgent(), ak.NewTracingTransport(rsp.Context(), ak.GetTLSTransport())), | ||||||
| 	} | 	} | ||||||
| 	token := strings.Split(refConfig.DefaultHeader["Authorization"], " ")[1] | 	token := strings.Split(refConfig.DefaultHeader["Authorization"], " ")[1] | ||||||
| 	config.AddDefaultHeader(HeaderAuthentikOutpostToken, token) | 	config.AddDefaultHeader(HeaderAuthentikOutpostToken, token) | ||||||
|  | |||||||
| @ -8,6 +8,7 @@ import ( | |||||||
| 	"net/url" | 	"net/url" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/getsentry/sentry-go" | ||||||
| 	"github.com/prometheus/client_golang/prometheus" | 	"github.com/prometheus/client_golang/prometheus" | ||||||
| 	"goauthentik.io/internal/outpost/ak" | 	"goauthentik.io/internal/outpost/ak" | ||||||
| 	"goauthentik.io/internal/outpost/proxyv2/metrics" | 	"goauthentik.io/internal/outpost/proxyv2/metrics" | ||||||
| @ -28,7 +29,8 @@ func (a *Application) configureProxy() error { | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	rp := &httputil.ReverseProxy{Director: a.proxyModifyRequest(u)} | 	rp := &httputil.ReverseProxy{Director: a.proxyModifyRequest(u)} | ||||||
| 	rp.Transport = ak.NewTracingTransport(context.TODO(), a.getUpstreamTransport()) | 	rsp := sentry.StartSpan(context.TODO(), "authentik.outposts.proxy.application_transport") | ||||||
|  | 	rp.Transport = ak.NewTracingTransport(rsp.Context(), a.getUpstreamTransport()) | ||||||
| 	rp.ErrorHandler = a.newProxyErrorHandler(templates.GetTemplates()) | 	rp.ErrorHandler = a.newProxyErrorHandler(templates.GetTemplates()) | ||||||
| 	rp.ModifyResponse = a.proxyModifyResponse | 	rp.ModifyResponse = a.proxyModifyResponse | ||||||
| 	a.mux.PathPrefix("/").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { | 	a.mux.PathPrefix("/").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) { | ||||||
|  | |||||||
| @ -5,6 +5,7 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"net/http" | 	"net/http" | ||||||
|  |  | ||||||
|  | 	"github.com/getsentry/sentry-go" | ||||||
| 	"goauthentik.io/internal/constants" | 	"goauthentik.io/internal/constants" | ||||||
| 	"goauthentik.io/internal/outpost/ak" | 	"goauthentik.io/internal/outpost/ak" | ||||||
| 	"goauthentik.io/internal/outpost/proxyv2/application" | 	"goauthentik.io/internal/outpost/proxyv2/application" | ||||||
| @ -20,9 +21,10 @@ func (ps *ProxyServer) Refresh() error { | |||||||
| 	} | 	} | ||||||
| 	apps := make(map[string]*application.Application) | 	apps := make(map[string]*application.Application) | ||||||
| 	for _, provider := range providers.Results { | 	for _, provider := range providers.Results { | ||||||
|  | 		rsp := sentry.StartSpan(context.Background(), "authentik.outposts.proxy.application_ss") | ||||||
| 		ua := fmt.Sprintf(" (provider=%s)", provider.Name) | 		ua := fmt.Sprintf(" (provider=%s)", provider.Name) | ||||||
| 		hc := &http.Client{ | 		hc := &http.Client{ | ||||||
| 			Transport: ak.NewUserAgentTransport(constants.OutpostUserAgent()+ua, ak.NewTracingTransport(context.TODO(), ak.GetTLSTransport())), | 			Transport: ak.NewUserAgentTransport(constants.OutpostUserAgent()+ua, ak.NewTracingTransport(rsp.Context(), ak.GetTLSTransport())), | ||||||
| 		} | 		} | ||||||
| 		a, err := application.NewApplication(provider, hc, ps.cryptoStore, ps.akAPI) | 		a, err := application.NewApplication(provider, hc, ps.cryptoStore, ps.akAPI) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer