James Moger
2014-06-12 b1dad726772a277924ff7ced0e26dc443962edcf
Merged #100 "Can't clone a repository with a + character in the name"
3 files modified
14 ■■■■ changed files
src/main/java/com/gitblit/servlet/AuthenticationFilter.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/utils/StringUtils.java 4 ●●● patch | view | raw | blame | history
src/site/administration.mkd 2 ●●● patch | view | raw | blame | history
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;
    }
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;
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*