From f97243c97838b9d06ef17b23319aea03d34315e8 Mon Sep 17 00:00:00 2001 From: Hassan_Wari <85742599+hassan254-prog@users.noreply.github.com> Date: Wed, 28 May 2025 10:22:02 +0300 Subject: [PATCH 1/2] feat(authorization): skip undefined/empty query parameter --- .../server/lib/controllers/oauth.controller.ts | 14 ++++++++++++++ packages/types/lib/providers/provider.ts | 1 + 2 files changed, 15 insertions(+) diff --git a/packages/server/lib/controllers/oauth.controller.ts b/packages/server/lib/controllers/oauth.controller.ts index 164d59b33fc..b48f300c362 100644 --- a/packages/server/lib/controllers/oauth.controller.ts +++ b/packages/server/lib/controllers/oauth.controller.ts @@ -633,6 +633,20 @@ class OAuthController { }); } + if (provider.authorization_url_skip_empty) { + const url = new URL(authorizationUri); + const queryParams = new URLSearchParams(url.search); + // Remove any keys with undefined or empty string values + for (const [key, value] of queryParams.entries()) { + if (value === '') { + queryParams.delete(key); + } + } + + url.search = queryParams.toString(); + authorizationUri = url.toString(); + } + void logCtx.info('Redirecting', { authorizationUri, providerConfigKey, diff --git a/packages/types/lib/providers/provider.ts b/packages/types/lib/providers/provider.ts index 0c14f23d173..833b4e6d697 100644 --- a/packages/types/lib/providers/provider.ts +++ b/packages/types/lib/providers/provider.ts @@ -62,6 +62,7 @@ export interface BaseProvider { }; authorization_url?: string; authorization_url_skip_encode?: string[]; + authorization_url_skip_empty?: boolean; access_token_url?: string; authorization_params?: Record; authorization_code_param_in_callback?: string; From 600669bdd92e88593c1e265b8fa40f66c5dc7878 Mon Sep 17 00:00:00 2001 From: Hassan_Wari <85742599+hassan254-prog@users.noreply.github.com> Date: Wed, 28 May 2025 10:26:31 +0300 Subject: [PATCH 2/2] update validation rules --- scripts/validation/providers/schema.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/validation/providers/schema.json b/scripts/validation/providers/schema.json index 49658acc071..6ac33f93a2a 100644 --- a/scripts/validation/providers/schema.json +++ b/scripts/validation/providers/schema.json @@ -97,6 +97,9 @@ "type": "string" } }, + "authorization_url_skip_empty": { + "type": "boolean" + }, "authorization_url_replacements": { "type": "object", "additionalProperties": true