From 95e7298a34a899cfcb75ae12b40188b23bb7481b Mon Sep 17 00:00:00 2001 From: rconner46 Date: Tue, 10 Jun 2025 10:52:02 -0500 Subject: [PATCH] Add property names to url configuration validation, update default proxy selenium proxy url --- .../auto/helpers/ApplauseConfigHelper.java | 41 +++++++++++++------ .../resources/applause_environment.properties | 2 +- 2 files changed, 30 insertions(+), 13 deletions(-) diff --git a/auto-sdk-java-integrations/src/main/java/com/applause/auto/helpers/ApplauseConfigHelper.java b/auto-sdk-java-integrations/src/main/java/com/applause/auto/helpers/ApplauseConfigHelper.java index 8a860d3..0df0159 100644 --- a/auto-sdk-java-integrations/src/main/java/com/applause/auto/helpers/ApplauseConfigHelper.java +++ b/auto-sdk-java-integrations/src/main/java/com/applause/auto/helpers/ApplauseConfigHelper.java @@ -31,6 +31,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; +import lombok.NonNull; import lombok.extern.log4j.Log4j2; /** have configuration checks in a common place */ @@ -63,10 +64,15 @@ public static void validateConfiguration() { boolean reqRevDns = !sdkConfigBean.noReverseDnsCheck(); var errorList = Stream.of( - validateUrl(applauseConfigBean.autoApiUrl(), true, reqRevDns), - validateUrl(applauseConfigBean.seleniumProxyUrl(), true, reqRevDns), - validateUrl(applauseConfigBean.applausePublicApiUrl(), true, reqRevDns), - validateUrl(sdkConfigBean.localAppiumUrl(), false, reqRevDns)) + validateUrl("autoApiUrl", applauseConfigBean.autoApiUrl(), true, reqRevDns), + validateUrl( + "seleniumProxyUrl", applauseConfigBean.seleniumProxyUrl(), true, reqRevDns), + validateUrl( + "applausePublicApiUrl", + applauseConfigBean.applausePublicApiUrl(), + true, + reqRevDns), + validateUrl("localAppiumUrl", sdkConfigBean.localAppiumUrl(), false, reqRevDns)) // filter out empty optionals and make list of remaining strings .filter(Optional::isPresent) .map(Optional::get) @@ -74,7 +80,8 @@ public static void validateConfiguration() { // If we have useSeleniumGrid set, then we must have seleniumGridLocation and this // must be a valid URL if (sdkConfigBean.useSeleniumGrid()) { - validateUrl(sdkConfigBean.seleniumGridLocation(), true, reqRevDns).ifPresent(errorList::add); + validateUrl("seleniumGridLocation", sdkConfigBean.seleniumGridLocation(), true, reqRevDns) + .ifPresent(errorList::add); } else if (!sdkConfigBean.useLocalDrivers() && applauseConfigBean.apiKey() == null) { errorList.add( "You have not configured an API key for the Applause API. Please set the apiKey property in your system.properties file or as a command line variable."); @@ -123,32 +130,42 @@ public static InputStreamReader getResourceAsStream(final Class clazz, final /** * returns error string if we got one, empty otherwise * - * @param urlAsString the string URL + * @param urlName the property name to validate + * @param urlValue the string URL * @param required whether the URL is required * @param reqRevDns whether reverse DNS is required * @return error message if validation failed */ static Optional validateUrl( - final String urlAsString, final boolean required, final boolean reqRevDns) { + final @NonNull String urlName, + final String urlValue, + final boolean required, + final boolean reqRevDns) { try { // First, verify the URL - final var urlValidationErrors = ConfigUtils.validateUrl(urlAsString, required); + final var urlValidationErrors = ConfigUtils.validateUrl(urlValue, required); // If validation failed, return the error if (urlValidationErrors.isPresent()) { - return urlValidationErrors; + return urlValidationErrors.map( + error -> "URL validation failed for '%s' with error: %s".formatted(urlName, error)); } // Now, if reverse DNS is required, verify the reverse DNS - if (reqRevDns && urlAsString != null && !urlAsString.isBlank()) { - return ConfigUtils.verifyReverseDns(urlAsString); + if (reqRevDns && urlValue != null && !urlValue.isBlank()) { + return ConfigUtils.verifyReverseDns(urlValue) + .map( + error -> + "Reverse DNS validation failed for '%s' with error: %s" + .formatted(urlName, error)); } // If reverse DNS is not required, return empty return Optional.empty(); } catch (Exception exception) { - return Optional.of("Error validating URL: " + exception.getMessage()); + return Optional.of( + "Error validating URL %s (%s): %s".formatted(urlName, urlValue, exception.getMessage())); } } } diff --git a/auto-sdk-java-integrations/src/main/resources/applause_environment.properties b/auto-sdk-java-integrations/src/main/resources/applause_environment.properties index 3070b6f..6108189 100644 --- a/auto-sdk-java-integrations/src/main/resources/applause_environment.properties +++ b/auto-sdk-java-integrations/src/main/resources/applause_environment.properties @@ -18,6 +18,6 @@ autoApiUrl=https://prod-auto-api.cloud.applause.com/ -seleniumProxyUrl=https://prod-auto-proxy-new.cloud.applause.com:443/ +seleniumProxyUrl=https://prod-auto-proxy-new.cloud.applause.com:443/wd/hub applausePublicApiUrl=https://api.applause.com/