diff options
author | James Moger <james.moger@gitblit.com> | 2013-07-24 10:42:11 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2013-07-24 10:42:11 -0400 |
commit | d22773711cf6e7d730e5542d01312ff1965554ba (patch) | |
tree | 87b15ef0ff1f913198ed4e2c74a7766f46422de8 /src | |
parent | 9d63b8a4d41774f97fa71722e3eb282fbf18f266 (diff) | |
download | gitblit-d22773711cf6e7d730e5542d01312ff1965554ba.tar.gz gitblit-d22773711cf6e7d730e5542d01312ff1965554ba.zip |
Automatically decode %7E in repository names to ~ (issue-278)
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/gitblit/GitBlit.java | 8 |
1 files changed, 8 insertions, 0 deletions
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) { |