From d22773711cf6e7d730e5542d01312ff1965554ba Mon Sep 17 00:00:00 2001 From: James Moger Date: Wed, 24 Jul 2013 10:42:11 -0400 Subject: [PATCH] Automatically decode %7E in repository names to ~ (issue-278) --- releases.moxie | 3 ++- src/main/java/com/gitblit/GitBlit.java | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/releases.moxie b/releases.moxie index b4b17e1c..63adbd38 100644 --- a/releases.moxie +++ b/releases.moxie @@ -13,12 +13,13 @@ r18: { security: ~ fixes: - Gitblit-as-viewer with no repository urls failed to display summary page (issue 269) + - Fixed incorrect tagger in the dashboard pages (issue-276) + - Automatically decode %7E in repository names from git clients that encode ~ (issue-278) - Fixed missing model class dependencies in Gitblit Manager build - Fix for IE10 compatibility mode - Reset dashboard and activity commit cache on branch REWIND or DELETE - Fixed bug with adding new local users with external authentication - Fixed missing clone url on the empty repository page - - Fixed incorrect tagger in the dashboard pages (issue-276) - Fixed Ubuntu service script for LSB compliance - Inserted "sleep 5" in Ubuntu & Centos bash script for service restart changes: diff --git a/src/main/java/com/gitblit/GitBlit.java b/src/main/java/com/gitblit/GitBlit.java index efdaad1e..e47c4c69 100644 --- a/src/main/java/com/gitblit/GitBlit.java +++ b/src/main/java/com/gitblit/GitBlit.java @@ -1557,6 +1557,10 @@ public class GitBlit implements ServletContextListener { * @return repository or null */ public Repository getRepository(String repositoryName, boolean logError) { + // Decode url-encoded repository name (issue-278) + // http://stackoverflow.com/questions/17183110 + repositoryName = repositoryName.replace("%7E", "~").replace("%7e", "~"); + if (isCollectingGarbage(repositoryName)) { logger.warn(MessageFormat.format("Rejecting request for {0}, busy collecting garbage!", repositoryName)); return null; @@ -1656,6 +1660,10 @@ public class GitBlit implements ServletContextListener { * @return repository model or null */ public RepositoryModel getRepositoryModel(String repositoryName) { + // Decode url-encoded repository name (issue-278) + // http://stackoverflow.com/questions/17183110 + repositoryName = repositoryName.replace("%7E", "~").replace("%7e", "~"); + if (!repositoryListCache.containsKey(repositoryName)) { RepositoryModel model = loadRepositoryModel(repositoryName); if (model == null) { -- 2.39.5