From 817c78f0d927e463589e84987f5b8d7f08670988 Mon Sep 17 00:00:00 2001 From: Steven Hawkins Date: Wed, 8 Oct 2025 02:55:07 -0400 Subject: [PATCH] fix: adds error handling for common redirect codes (#43276) closes: #31401 Signed-off-by: Steve Hawkins --- .../main/java/org/keycloak/client/cli/util/HttpUtil.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/cli/util/HttpUtil.java b/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/cli/util/HttpUtil.java index 72db013b1d8..6d81aea2fab 100644 --- a/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/cli/util/HttpUtil.java +++ b/integration/client-cli/admin-cli/src/main/java/org/keycloak/client/cli/util/HttpUtil.java @@ -42,6 +42,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; import java.net.URLEncoder; import java.security.KeyManagementException; import java.security.KeyStoreException; @@ -49,6 +50,7 @@ import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -201,6 +203,10 @@ public class HttpUtil { int code = response.getStatusLine().getStatusCode(); if (code >= 200 && code < 300) { return responseStream; + } else if (code >= HttpURLConnection.HTTP_MOVED_PERM && code <= HttpURLConnection.HTTP_SEE_OTHER) { + throw new RuntimeException( + "Request was unsuccessful as the server responded with a redirect to %s - please check that your server URL is correct." + .formatted(Optional.ofNullable(response.getFirstHeader("Location")).map(org.apache.http.Header::getValue).orElse("UNKNOWN"))); } else { Map error = null; try {