From 9becad4b6d71d93f3700060f6ac09f1d9e49e874 Mon Sep 17 00:00:00 2001 From: Sergey Beryozkin Date: Thu, 8 Sep 2022 14:04:51 +0100 Subject: [PATCH] More fixes related to 'The supplier returned null' message --- .../java/io/quarkus/oidc/client/runtime/OidcClientImpl.java | 2 +- .../io/quarkus/oidc/common/runtime/OidcCommonUtils.java | 6 +++++- .../devservices/keycloak/KeycloakDevServicesProcessor.java | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/extensions/oidc-client/runtime/src/main/java/io/quarkus/oidc/client/runtime/OidcClientImpl.java b/extensions/oidc-client/runtime/src/main/java/io/quarkus/oidc/client/runtime/OidcClientImpl.java index bbb62b55b0c00..38b7932631229 100644 --- a/extensions/oidc-client/runtime/src/main/java/io/quarkus/oidc/client/runtime/OidcClientImpl.java +++ b/extensions/oidc-client/runtime/src/main/java/io/quarkus/oidc/client/runtime/OidcClientImpl.java @@ -124,7 +124,7 @@ public Uni get() { .atMost(oidcConfig.connectionRetryCount) .onFailure().transform(t -> { LOG.warn("OIDC Server is not available:", t.getCause() != null ? t.getCause() : t); - // don't wrap t to avoid information leak + // don't wrap it to avoid information leak return new OidcClientException("OIDC Server is not available"); }); return response.onItem() diff --git a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java index 8d81feff3077d..6afd8a4664209 100644 --- a/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java +++ b/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java @@ -409,7 +409,11 @@ public static Uni discoverMetadata(WebClient client, String authServ .retry() .withBackOff(CONNECTION_BACKOFF_DURATION, CONNECTION_BACKOFF_DURATION) .expireIn(connectionDelayInMillisecs) - .onFailure().transform(t -> t.getCause()); + .onFailure().transform(t -> { + LOG.warn("OIDC Server is not available:", t.getCause() != null ? t.getCause() : t); + // don't wrap it to avoid information leak + return new RuntimeException("OIDC Server is not available"); + }); } private static byte[] getFileContent(Path path) throws IOException { diff --git a/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/keycloak/KeycloakDevServicesProcessor.java b/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/keycloak/KeycloakDevServicesProcessor.java index dce213e278673..817a1a5b20697 100644 --- a/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/keycloak/KeycloakDevServicesProcessor.java +++ b/extensions/oidc/deployment/src/main/java/io/quarkus/oidc/deployment/devservices/keycloak/KeycloakDevServicesProcessor.java @@ -578,7 +578,10 @@ private void createRealm(String keycloakUrl, RealmRepresentation realm) { .retry() .withBackOff(Duration.ofSeconds(2), Duration.ofSeconds(2)) .expireIn(10 * 1000) - .onFailure().transform(t -> t.getCause()); + .onFailure().transform(t -> { + return new RuntimeException("Keycloak server is not available" + + (t.getMessage() != null ? (": " + t.getMessage()) : "")); + }); realmStatusCodeUni.await().atMost(Duration.ofSeconds(10)); } catch (Throwable t) { LOG.errorf("Realm %s can not be created: %s", realm.getRealm(), t.getMessage());