From 756117adc7f5b4bd21948ede7ab0085aa42d5ccc Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 07 Aug 2012 09:43:24 -0400 Subject: [PATCH] Fix to GitServlet to allow pushing to symlinked repositories (issue 116) --- src/com/gitblit/GitFilter.java | 32 +++++++++++++++++++++----------- 1 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/com/gitblit/GitFilter.java b/src/com/gitblit/GitFilter.java index 4ae5b6c..aa67346 100644 --- a/src/com/gitblit/GitFilter.java +++ b/src/com/gitblit/GitFilter.java @@ -32,12 +32,29 @@ */ public class GitFilter extends AccessRestrictionFilter { - protected final String gitReceivePack = "/git-receive-pack"; + protected static final String gitReceivePack = "/git-receive-pack"; - protected final String gitUploadPack = "/git-upload-pack"; + protected static final String gitUploadPack = "/git-upload-pack"; - protected final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD", + protected static final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD", "/objects" }; + + /** + * Extract the repository name from the url. + * + * @param url + * @return repository name + */ + public static String getRepositoryName(String value) { + String repository = value; + // get the repository name from the url by finding a known url suffix + for (String urlSuffix : suffixes) { + if (repository.indexOf(urlSuffix) > -1) { + repository = repository.substring(0, repository.indexOf(urlSuffix)); + } + } + return repository; + } /** * Extract the repository name from the url. @@ -47,14 +64,7 @@ */ @Override protected String extractRepositoryName(String url) { - String repository = url; - // get the repository name from the url by finding a known url suffix - for (String urlSuffix : suffixes) { - if (repository.indexOf(urlSuffix) > -1) { - repository = repository.substring(0, repository.indexOf(urlSuffix)); - } - } - return repository; + return GitFilter.getRepositoryName(url); } /** -- Gitblit v1.9.1