diff --git a/src/main/java/com/bettercloud/vault/VaultConfig.java b/src/main/java/com/bettercloud/vault/VaultConfig.java
index 7d4545fd..67f0ca25 100644
--- a/src/main/java/com/bettercloud/vault/VaultConfig.java
+++ b/src/main/java/com/bettercloud/vault/VaultConfig.java
@@ -315,7 +315,7 @@ public VaultConfig build() throws VaultException {
if (this.address == null) {
final String addressFromEnv = environmentLoader.loadVariable(VAULT_ADDR);
if (addressFromEnv != null) {
- this.address = addressFromEnv;
+ address(addressFromEnv);
} else {
throw new VaultException("No address is set");
}
diff --git a/src/test/java/com/bettercloud/vault/VaultConfigTests.java b/src/test/java/com/bettercloud/vault/VaultConfigTests.java
index 3a49a45b..2897b4d8 100644
--- a/src/test/java/com/bettercloud/vault/VaultConfigTests.java
+++ b/src/test/java/com/bettercloud/vault/VaultConfigTests.java
@@ -106,6 +106,23 @@ public void testConfigConstructor_NormalizesAddress() throws VaultException {
assertEquals("https://localhost:8200", config.getAddress());
}
+ /**
+ * Test creating a new VaultConfig
via its constructor, take address from environment and ensuring
+ * that addresses are normalized to not have a trailing slash.
+ *
+ * @throws VaultException
+ */
+ @Test
+ public void testConfigConstructor_NormalizesAddressFromEnv() throws VaultException {
+ final MockEnvironmentLoader mock = new MockEnvironmentLoader();
+ mock.override("VAULT_ADDR", "https://localhost:8200/");
+
+ final VaultConfig config = new VaultConfig()
+ .environmentLoader(mock)
+ .build();
+ assertEquals("https://localhost:8200", config.getAddress());
+ }
+
/**
* Test creating a new VaultConfig
via its constructor, passing null address and token values AND
* having them unavailable in the environment variables too. This should cause initialization failure.