diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/AbstractScmEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/AbstractScmEnvironmentRepository.java index 8e90e120..3fe6c284 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/AbstractScmEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/AbstractScmEnvironmentRepository.java @@ -85,6 +85,11 @@ public abstract class AbstractScmEnvironmentRepository implements EnvironmentRep while (uri.endsWith("/")) { uri = uri.substring(0, uri.length() - 1); } + int index = uri.indexOf("://"); + if (index>0 && !uri.substring(index+"://".length()).contains("/")) { + // If there's no context path add one + uri = uri + "/"; + } this.uri = uri; } diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/JGitEnvironmentRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/JGitEnvironmentRepositoryTests.java index 5b667c7b..c4da746b 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/JGitEnvironmentRepositoryTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/JGitEnvironmentRepositoryTests.java @@ -16,8 +16,7 @@ package org.springframework.cloud.config.server; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.io.File; import java.io.IOException; @@ -123,5 +122,17 @@ public class JGitEnvironmentRepositoryTests { assertEquals(repository.getUri() + "/bar.properties", environment .getPropertySources().get(0).getName()); } + + @Test + public void uriWithHostOnly() throws Exception { + repository.setUri("git://localhost"); + assertEquals("git://localhost/", repository.getUri()); + } + + @Test + public void uriWithHostAndPath() throws Exception { + repository.setUri("git://localhost/foo/"); + assertEquals("git://localhost/foo", repository.getUri()); + } }