mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-02 03:25:56 +01:00
#889 fix wrong subversion urls behind a reverse proxy
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user