From a28bc4b0de7044f012e761c0da3d4bfa564abcec Mon Sep 17 00:00:00 2001 From: Bulat Shakirzyanov <83289+avalanche123@users.noreply.github.com> Date: Wed, 20 Sep 2023 09:46:43 -0400 Subject: [PATCH] skip websocket auth init if initialized Signed-off-by: Bulat Shakirzyanov <83289+avalanche123@users.noreply.github.com> --- internal/auth/auth.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/auth/auth.go b/internal/auth/auth.go index d4781d8..fd444e2 100644 --- a/internal/auth/auth.go +++ b/internal/auth/auth.go @@ -143,6 +143,13 @@ func Middleware(next http.Handler) http.Handler { } func WebsocketInit(ctx context.Context, initPayload transport.InitPayload) (context.Context, error) { + // don't re-initialize credentials from the init payload if present in request headers. + if cr, ok := FromContext(ctx); ok { + if cr.BasicUsername != "" || cr.BasicPassword != "" || cr.BearerToken != "" || + cr.Impersonate.Username != "" || len(cr.Impersonate.Groups) > 0 || len(cr.Impersonate.Extra) > 0 { + return ctx, nil + } + } r := &http.Request{ Header: make(http.Header), }