From d9c12fc572b922b08bca4c7b57789ff1a01097a3 Mon Sep 17 00:00:00 2001 From: Jules Favreau Pollender Date: Thu, 21 Mar 2024 10:41:44 -0400 Subject: [PATCH 1/3] [Issue#1068] KeycloakApi doesn't work with Keycloak version >= 17 --- .../java/com/github/scribejava/apis/KeycloakApi.java | 9 ++++++++- .../github/scribejava/apis/examples/KeycloakExample.java | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java index ed713b4d0..725708889 100644 --- a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java +++ b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java @@ -4,6 +4,8 @@ import com.github.scribejava.core.builder.api.DefaultApi20; import com.github.scribejava.core.extractors.TokenExtractor; import com.github.scribejava.core.model.OAuth2AccessToken; +import com.github.scribejava.core.oauth2.clientauthentication.ClientAuthentication; +import com.github.scribejava.core.oauth2.clientauthentication.RequestBodyAuthenticationScheme; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -38,7 +40,7 @@ public static KeycloakApi instance(String baseUrl, String realm) { } protected static String composeBaseUrlWithRealm(String baseUrl, String realm) { - return baseUrl + (baseUrl.endsWith("/") ? "" : "/") + "auth/realms/" + realm; + return baseUrl + (baseUrl.endsWith("/") ? "" : "/") + "realms/" + realm; } @Override @@ -51,6 +53,11 @@ protected String getAuthorizationBaseUrl() { return baseUrlWithRealm + "/protocol/openid-connect/auth"; } + @Override + public ClientAuthentication getClientAuthentication() { + return RequestBodyAuthenticationScheme.instance(); + } + @Override public TokenExtractor getAccessTokenExtractor() { return OpenIdJsonTokenExtractor.instance(); diff --git a/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/KeycloakExample.java b/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/KeycloakExample.java index 2d78ffb97..72a715858 100644 --- a/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/KeycloakExample.java +++ b/scribejava-apis/src/test/java/com/github/scribejava/apis/examples/KeycloakExample.java @@ -23,10 +23,10 @@ public static void main(String... args) throws IOException, InterruptedException final String apiKey = "your_api_key"; final String apiSecret = "your_api_secret"; final String callback = "your_callback"; - final String baseUrl = "your_base_url"; + final String baseUrl = "your_base_url"; // Add /auth at the end when using keycloak version < 17 final String realm = "your_realm"; - final String protectedResourceUrl = baseUrl + "/auth/realms/" + realm + "/protocol/openid-connect/userinfo"; + final String protectedResourceUrl = baseUrl + "/realms/" + realm + "/protocol/openid-connect/userinfo"; final OAuth20Service service = new ServiceBuilder(apiKey) .apiSecret(apiSecret) From 0dbafe5160316744cfd9c369c143653b0936cd1b Mon Sep 17 00:00:00 2001 From: Jules Favreau-Pollender Date: Fri, 14 Jun 2024 09:47:39 -0400 Subject: [PATCH 2/3] Update KeycloakApi.java --- .../main/java/com/github/scribejava/apis/KeycloakApi.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java index 725708889..dab2dbed2 100644 --- a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java +++ b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java @@ -53,11 +53,6 @@ protected String getAuthorizationBaseUrl() { return baseUrlWithRealm + "/protocol/openid-connect/auth"; } - @Override - public ClientAuthentication getClientAuthentication() { - return RequestBodyAuthenticationScheme.instance(); - } - @Override public TokenExtractor getAccessTokenExtractor() { return OpenIdJsonTokenExtractor.instance(); From d2a63005538d123f3d0b5064d114c9d8d69a7dd4 Mon Sep 17 00:00:00 2001 From: Jules Favreau-Pollender Date: Fri, 14 Jun 2024 09:50:06 -0400 Subject: [PATCH 3/3] Update KeycloakApi.java --- .../src/main/java/com/github/scribejava/apis/KeycloakApi.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java index dab2dbed2..9fa573cbd 100644 --- a/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java +++ b/scribejava-apis/src/main/java/com/github/scribejava/apis/KeycloakApi.java @@ -4,8 +4,6 @@ import com.github.scribejava.core.builder.api.DefaultApi20; import com.github.scribejava.core.extractors.TokenExtractor; import com.github.scribejava.core.model.OAuth2AccessToken; -import com.github.scribejava.core.oauth2.clientauthentication.ClientAuthentication; -import com.github.scribejava.core.oauth2.clientauthentication.RequestBodyAuthenticationScheme; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap;