diff options
author | James Moger <james.moger@gitblit.com> | 2014-06-10 17:38:45 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-06-12 18:52:41 -0400 |
commit | 46bfccb0d57ba75d195be7afa54e37ba0d4321d1 (patch) | |
tree | a9ec84525ca3c583287e0ed623bcf1efd65d1149 /src/main/java/com/gitblit | |
parent | 65a6f622001a2596befb4dd0a07ce11cb9224d2e (diff) | |
download | gitblit-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.java | 8 | ||||
-rw-r--r-- | src/main/java/com/gitblit/utils/StringUtils.java | 4 |
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;
|