From c0f4bafe7cda7f3d981c068ae395e2995c48280e Mon Sep 17 00:00:00 2001 From: Pauline Date: Thu, 28 Nov 2024 11:40:01 +0000 Subject: [PATCH] Add support for additional parms for client credentials ktor oauth --- .../kotlin/org/radarbase/ktor/auth/ClientCredentialsConfig.kt | 1 + .../main/kotlin/org/radarbase/ktor/auth/OAuthClientProvider.kt | 3 +++ 2 files changed, 4 insertions(+) diff --git a/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/ClientCredentialsConfig.kt b/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/ClientCredentialsConfig.kt index b1ba8a72..0f7b8ad2 100644 --- a/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/ClientCredentialsConfig.kt +++ b/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/ClientCredentialsConfig.kt @@ -6,6 +6,7 @@ data class ClientCredentialsConfig( val tokenUrl: String, val clientId: String? = null, val clientSecret: String? = null, + val additionalParameters: Map? = null, ) { /** * Fill in the client ID and client secret from environment variables. The variables are diff --git a/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/OAuthClientProvider.kt b/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/OAuthClientProvider.kt index 9a2fd00b..750a2373 100644 --- a/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/OAuthClientProvider.kt +++ b/radar-commons-kotlin/src/main/kotlin/org/radarbase/ktor/auth/OAuthClientProvider.kt @@ -56,6 +56,9 @@ fun Auth.clientCredentials( append("grant_type", "client_credentials") append("client_id", authConfig.clientId) append("client_secret", authConfig.clientSecret) + authConfig.additionalParameters?.forEach { (key, value) -> + append(key, value) + } }, ) { accept(ContentType.Application.Json)