#889 fix wrong subversion urls behind a reverse proxy

This commit is contained in:
Sebastian Sdorra
2017-02-06 16:10:18 +01:00
parent 7865e75c2a
commit 05384dd017

View File

@@ -37,6 +37,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList.Builder; import com.google.common.collect.ImmutableList.Builder;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Provider;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -68,6 +69,7 @@ import java.io.StringWriter;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import javax.servlet.http.HttpServletRequest;
/** /**
* *
@@ -96,15 +98,18 @@ public class SvnCollectionRenderer implements CollectionRenderer
* @param configuration * @param configuration
* @param templateEngineFactory * @param templateEngineFactory
* @param repositoryProvider * @param repositoryProvider
* @param requestProvider
*/ */
@Inject @Inject
public SvnCollectionRenderer(ScmConfiguration configuration, public SvnCollectionRenderer(ScmConfiguration configuration,
TemplateEngineFactory templateEngineFactory, TemplateEngineFactory templateEngineFactory,
RepositoryProvider repositoryProvider) RepositoryProvider repositoryProvider,
Provider<HttpServletRequest> requestProvider)
{ {
this.configuration = configuration; this.configuration = configuration;
this.templateEngineFactory = templateEngineFactory; this.templateEngineFactory = templateEngineFactory;
this.repositoryProvider = repositoryProvider; this.repositoryProvider = repositoryProvider;
this.requestProvider = requestProvider;
} }
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
@@ -177,10 +182,8 @@ public class SvnCollectionRenderer implements CollectionRenderer
entries.add(new DirectoryEntry(resource, entry)); entries.add(new DirectoryEntry(resource, entry));
} }
UrlProvider urlProvider = UrlProvider urlProvider = createUrlProvider();
UrlProviderFactory.createUrlProvider(configuration.getBaseUrl(),
UrlProviderFactory.TYPE_WUI);
//J- //J-
return new RepositoryWrapper( return new RepositoryWrapper(
urlProvider.getRepositoryUrlProvider(), urlProvider.getRepositoryUrlProvider(),
@@ -190,6 +193,16 @@ public class SvnCollectionRenderer implements CollectionRenderer
); );
//J+ //J+
} }
private UrlProvider createUrlProvider() {
String baseUrl = getBaseUrl();
logger.trace("render subversion collection with base url: {}", baseUrl);
return UrlProviderFactory.createUrlProvider(baseUrl, UrlProviderFactory.TYPE_WUI);
}
private String getBaseUrl() {
return HttpUtil.getCompleteUrl(requestProvider.get());
}
//~--- inner classes -------------------------------------------------------- //~--- inner classes --------------------------------------------------------
@@ -472,6 +485,8 @@ public class SvnCollectionRenderer implements CollectionRenderer
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
private final Provider<HttpServletRequest> requestProvider;
/** Field description */ /** Field description */
private final ScmConfiguration configuration; private final ScmConfiguration configuration;