summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2014-06-10 17:38:45 -0400
committerJames Moger <james.moger@gitblit.com>2014-06-12 18:52:41 -0400
commit46bfccb0d57ba75d195be7afa54e37ba0d4321d1 (patch)
treea9ec84525ca3c583287e0ed623bcf1efd65d1149 /src/main/java/com/gitblit
parent65a6f622001a2596befb4dd0a07ce11cb9224d2e (diff)
downloadgitblit-46bfccb0d57ba75d195be7afa54e37ba0d4321d1.tar.gz
gitblit-46bfccb0d57ba75d195be7afa54e37ba0d4321d1.zip
Fix cloning repositories with + in their names
Diffstat (limited to 'src/main/java/com/gitblit')
-rw-r--r--src/main/java/com/gitblit/servlet/AuthenticationFilter.java8
-rw-r--r--src/main/java/com/gitblit/utils/StringUtils.java4
2 files changed, 3 insertions, 9 deletions
diff --git a/src/main/java/com/gitblit/servlet/AuthenticationFilter.java b/src/main/java/com/gitblit/servlet/AuthenticationFilter.java
index dd821ac7..ddb85f49 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 @@ public abstract class AuthenticationFilter extends DaggerFilter {
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 d7e1ea3d..087de543 100644
--- a/src/main/java/com/gitblit/utils/StringUtils.java
+++ b/src/main/java/com/gitblit/utils/StringUtils.java
@@ -129,6 +129,8 @@ public class StringUtils {
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 @@ public class StringUtils {
* @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;