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