diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java index b4d1ad18e5e1..4dd6efae1079 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java @@ -239,25 +239,30 @@ public ConfigurationClientBuilder endpoint(String endpoint) { * @param connectionString Connection string in the format "endpoint={endpoint_value};id={id_value}; * secret={secret_value}" * @return The updated ConfigurationClientBuilder object. - * @throws NullPointerException If {@code credential} is {@code null}. + * @throws NullPointerException If {@code connectionString} is {@code null}. + * @throws IllegalArgumentException if {@code connectionString} is an empty string, the {@code connectionString} + * secret is invalid, or the HMAC-SHA256 MAC algorithm cannot be instantiated. */ public ConfigurationClientBuilder connectionString(String connectionString) { - Objects.requireNonNull(connectionString); + Objects.requireNonNull(connectionString, "'connectionString' cannot be null."); + + if (connectionString.isEmpty()) { + throw logger.logExceptionAsError( + new IllegalArgumentException("'connectionString' cannot be an empty string.")); + } try { this.credential = new ConfigurationClientCredentials(connectionString); } catch (InvalidKeyException err) { throw logger.logExceptionAsError(new IllegalArgumentException( - "The secret is invalid and cannot instantiate the HMAC-SHA256 algorithm.", err)); + "The secret contained within the connection string is invalid and cannot instantiate the HMAC-SHA256" + + " algorithm.", err)); } catch (NoSuchAlgorithmException err) { throw logger.logExceptionAsError( new IllegalArgumentException("HMAC-SHA256 MAC algorithm cannot be instantiated.", err)); } this.endpoint = credential.getBaseUri(); - - // Clear TokenCredential in favor of connection string credential - this.tokenCredential = null; return this; } @@ -272,9 +277,6 @@ public ConfigurationClientBuilder credential(TokenCredential tokenCredential) { // token credential can not be null value Objects.requireNonNull(tokenCredential); this.tokenCredential = tokenCredential; - - // Clear connection string based credential in favor of TokenCredential - this.credential = null; return this; }