From b1dad726772a277924ff7ced0e26dc443962edcf Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 12 Jun 2014 19:00:06 -0400 Subject: [PATCH] Merged #100 "Can't clone a repository with a + character in the name" --- src/site/administration.mkd | 2 +- src/main/java/com/gitblit/servlet/AuthenticationFilter.java | 8 -------- src/main/java/com/gitblit/utils/StringUtils.java | 4 +++- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java index dd821ac..ddb85f4 100644 --- a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java +++ b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java @@ -16,8 +16,6 @@ package com.gitblit.servlet; import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.security.Principal; import java.util.Enumeration; import java.util.HashMap; @@ -102,12 +100,6 @@ url = url.substring(1); } String fullUrl = url + (StringUtils.isEmpty(params) ? "" : ("?" + params)); - try { - fullUrl = URLDecoder.decode(fullUrl, "UTF-8"); - } catch (UnsupportedEncodingException e) { - logger.warn("UTF-8 decoding of URL failed: "+fullUrl, e); - e.printStackTrace(); - } return fullUrl; } diff --git a/src/main/java/com/gitblit/utils/StringUtils.java b/src/main/java/com/gitblit/utils/StringUtils.java index d7e1ea3..087de54 100644 --- a/src/main/java/com/gitblit/utils/StringUtils.java +++ b/src/main/java/com/gitblit/utils/StringUtils.java @@ -129,6 +129,8 @@ retStr.append("%20"); } else if (inStr.charAt(i) == '&') { retStr.append("%26"); + } else if (inStr.charAt(i) == '+') { + retStr.append("%2B"); } else { retStr.append(inStr.charAt(i)); } @@ -398,7 +400,7 @@ * @return the first invalid character found or null if string is acceptable */ public static Character findInvalidCharacter(String name) { - char[] validChars = { '/', '.', '_', '-', '~' }; + char[] validChars = { '/', '.', '_', '-', '~', '+' }; for (char c : name.toCharArray()) { if (!Character.isLetterOrDigit(c)) { boolean ok = false; diff --git a/src/site/administration.mkd b/src/site/administration.mkd index 6fc334e..049a827 100644 --- a/src/site/administration.mkd +++ b/src/site/administration.mkd @@ -20,7 +20,7 @@ federationSets = #### Repository Names -Repository names must be case-insensitive-unique but are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS. The name must be composed of letters, digits, or `/ _ - . ~`<br/> +Repository names must be case-insensitive-unique but are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS. The name must be composed of letters, digits, or `/ _ - . ~ +`<br/> Whitespace is illegal. Repositories can be grouped within subfolders. e.g. *libraries/mycoollib.git* and *libraries/myotherlib.git* -- Gitblit v1.9.1