fix: set X-Forwarded-User header for SSE requests from existing session (#111)

Co-authored-by: muffin <[email protected]>
This commit is contained in:
muffn_
2026-01-02 02:50:11 +00:00
committed by GitHub
co-authored by muffin
parent 06b219d1f8
commit 22c4323fcb
+11
View File
@@ -86,6 +86,17 @@ func (t *TraefikOidc) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
acceptHeader := req.Header.Get("Accept")
if strings.Contains(acceptHeader, "text/event-stream") {
t.logger.Debugf("Request accepts text/event-stream (%s), bypassing OIDC", acceptHeader)
// Set forwarded user headers from existing session before bypassing
if session, err := t.sessionManager.GetSession(req); err == nil {
defer session.returnToPoolSafely()
if email := session.GetEmail(); email != "" {
req.Header.Set("X-Forwarded-User", email)
if !t.minimalHeaders {
req.Header.Set("X-Auth-Request-User", email)
}
t.logger.Debugf("SSE bypass: forwarded user %s from session", email)
}
}
t.next.ServeHTTP(rw, req)
return
}