From 80e5b5b0c1bd8ba1463d72967052996978f60f75 Mon Sep 17 00:00:00 2001 From: James Read Date: Sat, 19 Oct 2024 20:33:27 +0100 Subject: [PATCH] feature: Cleanup auth code (#444) --- internal/httpservers/restapi.go | 4 ++-- internal/httpservers/restapi_auth_oauth2.go | 4 ++++ internal/httpservers/webuiServer.go | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/httpservers/restapi.go b/internal/httpservers/restapi.go index 4a7bd43..b0cd3d4 100644 --- a/internal/httpservers/restapi.go +++ b/internal/httpservers/restapi.go @@ -58,12 +58,12 @@ func parseRequestMetadata(ctx context.Context, req *http.Request) metadata.MD { provider = "jwt-cookie" } - if cfg.AuthHttpHeaderUsername != "" { + if cfg.AuthHttpHeaderUsername != "" && username == "" { username, usergroup = parseHttpHeaderForAuth(req) provider = "http-header" } - if len(cfg.AuthOAuth2Providers) > 0 { + if len(cfg.AuthOAuth2Providers) > 0 && username == "" { username, usergroup, sid = parseOAuth2Cookie(req) provider = "oauth2" } diff --git a/internal/httpservers/restapi_auth_oauth2.go b/internal/httpservers/restapi_auth_oauth2.go index a572bed..dae0852 100644 --- a/internal/httpservers/restapi_auth_oauth2.go +++ b/internal/httpservers/restapi_auth_oauth2.go @@ -254,6 +254,10 @@ func parseOAuth2Cookie(r *http.Request) (string, string, string) { return "", "", "" } + if cookie.Value == "" { + return "", "", "" + } + serverState, found := registeredStates[cookie.Value] if !found { diff --git a/internal/httpservers/webuiServer.go b/internal/httpservers/webuiServer.go index 5c71f35..53c96f3 100644 --- a/internal/httpservers/webuiServer.go +++ b/internal/httpservers/webuiServer.go @@ -142,7 +142,7 @@ func generateWebUISettings(w http.ResponseWriter, r *http.Request) { SshFoundConfig: installationinfo.Runtime.SshFoundConfig, EnableCustomJs: cfg.EnableCustomJs, AuthLoginUrl: cfg.AuthLoginUrl, - AuthLocalLogin: true, + AuthLocalLogin: cfg.AuthLocalUsers.Enabled, AuthOAuth2Providers: buildPublicOAuth2ProvidersList(cfg), AdditionalLinks: cfg.AdditionalNavigationLinks, })