Clean remote url if necessary

Make sure that the remote URL does not contain a trailing slash.

Closes gh-4297
pull/4293/merge
Stephane Nicoll 9 years ago
parent edd3f1eade
commit 40c2c6db08

@ -46,7 +46,7 @@ class RemoteUrlPropertyExtractor
@Override
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
ConfigurableEnvironment environment = event.getEnvironment();
String url = environment.getProperty(NON_OPTION_ARGS);
String url = cleanRemoteUrl(environment.getProperty(NON_OPTION_ARGS));
Assert.state(StringUtils.hasLength(url), "No remote URL specified");
Assert.state(url.indexOf(",") == -1, "Multiple URLs specified");
try {
@ -60,6 +60,13 @@ class RemoteUrlPropertyExtractor
environment.getPropertySources().addLast(propertySource);
}
private String cleanRemoteUrl(String url) {
if (StringUtils.hasText(url) && url.endsWith("/")) {
return url.substring(0, url.length() - 1);
}
return url;
}
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;

@ -79,6 +79,13 @@ public class RemoteUrlPropertyExtractorTests {
is(nullValue()));
}
@Test
public void cleanValidUrl() throws Exception {
ApplicationContext context = doTest("http://localhost:8080/");
assertThat(context.getEnvironment().getProperty("remoteUrl"),
equalTo("http://localhost:8080"));
}
private ApplicationContext doTest(String... args) {
SpringApplication application = new SpringApplication(Config.class);
application.setWebEnvironment(false);

Loading…
Cancel
Save