From 2b1e02997f12e2cf12088d2e9f6eef107e1ce8f5 Mon Sep 17 00:00:00 2001 From: paladox <paladox@users.noreply.github.com> Date: Mon, 23 Nov 2015 13:32:00 -0500 Subject: [PATCH] Match longest repository path towards the shortest pr-950 --- src/main/java/com/gitblit/servlet/RawServlet.java | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RawServlet.java b/src/main/java/com/gitblit/servlet/RawServlet.java index 1d2724b..e11bc50 100644 --- a/src/main/java/com/gitblit/servlet/RawServlet.java +++ b/src/main/java/com/gitblit/servlet/RawServlet.java @@ -166,23 +166,14 @@ } // determine repository and resource from url - String repository = ""; + String repository = path; Repository r = null; - int offset = 0; - while (r == null) { - int slash = path.indexOf('/', offset); - if (slash == -1) { - repository = path; - } else { - repository = path.substring(0, slash); - } - offset = ( slash + 1 ); + int terminator = repository.length(); + do { + repository = repository.substring(0, terminator); r = repositoryManager.getRepository(repository, false); - if (repository.equals(path)) { - // either only repository in url or no repository found - break; - } - } + terminator = repository.lastIndexOf('/'); + } while (r == null && terminator > -1 ); ServletContext context = request.getSession().getServletContext(); -- Gitblit v1.9.1