Merge branch 'next'

This commit is contained in:
Jens Langhammer 2023-01-15 17:03:01 +01:00
commit a73d50d379
No known key found for this signature in database
3 changed files with 17 additions and 12 deletions

View file

@ -113,9 +113,9 @@ func NewApplication(p api.ProxyOutpostConfig, c *http.Client, cs *ak.CryptoStore
return l
}
if c.PreferredUsername != "" {
return l.WithField("request_username", c.PreferredUsername)
return l.WithField("user", c.PreferredUsername)
}
return l.WithField("request_username", c.Sub)
return l.WithField("user", c.Sub)
}))
mux.Use(func(inner http.Handler) http.Handler {
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {

View file

@ -27,11 +27,14 @@ func (a *Application) configureProxy() error {
if err != nil {
return err
}
rp := &httputil.ReverseProxy{Director: a.proxyModifyRequest(u)}
rsp := sentry.StartSpan(context.TODO(), "authentik.outposts.proxy.application_transport")
rp.Transport = web.NewTracingTransport(rsp.Context(), a.getUpstreamTransport())
rp.ErrorHandler = a.newProxyErrorHandler()
rp.ModifyResponse = a.proxyModifyResponse
rp := &httputil.ReverseProxy{
Director: a.proxyModifyRequest(u),
Transport: web.NewTracingTransport(rsp.Context(), a.getUpstreamTransport()),
ErrorHandler: a.newProxyErrorHandler(),
ModifyResponse: a.proxyModifyResponse,
FlushInterval: -1,
}
a.mux.PathPrefix("/").HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
defer func() {
err := recover()

View file

@ -14,10 +14,9 @@ import (
// responseLogger is wrapper of http.ResponseWriter that keeps track of its HTTP status
// code and body size
type responseLogger struct {
w http.ResponseWriter
status int
size int
upstream string
w http.ResponseWriter
status int
size int
}
// Header returns the ResponseWriter's Header
@ -98,15 +97,18 @@ func (h loggingHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
responseLogger := &responseLogger{w: w}
h.handler.ServeHTTP(responseLogger, req)
duration := float64(time.Since(t)) / float64(time.Millisecond)
scheme := "http"
if req.TLS != nil {
scheme = "https"
}
h.afterHandler(h.logger.WithFields(log.Fields{
"remote": req.RemoteAddr,
"host": GetHost(req),
"runtime": fmt.Sprintf("%0.3f", duration),
"method": req.Method,
"scheme": req.URL.Scheme,
"scheme": scheme,
"size": responseLogger.Size(),
"status": responseLogger.Status(),
"upstream": responseLogger.upstream,
"user_agent": req.UserAgent(),
}), req).Info(url.RequestURI())
}