escape url parameters ub UrlBuilder in order to fix issue #847

This commit is contained in:
Sebastian Sdorra
2016-07-08 14:50:20 +02:00
parent d1193c39df
commit 73c566d9bf
2 changed files with 9 additions and 4 deletions

View File

@@ -35,6 +35,7 @@ package sonia.scm.util;
//~--- JDK imports ------------------------------------------------------------
import com.google.common.net.UrlEscapers;
import java.net.MalformedURLException;
import java.net.URL;
@@ -138,8 +139,11 @@ public class UrlBuilder
{
if (Util.isNotEmpty(name) && Util.isNotEmpty(value))
{
url = new StringBuilder(url).append(separator).append(name).append(
HttpUtil.SEPARATOR_PARAMETER_VALUE).append(value).toString();
url = new StringBuilder(url)
.append(separator).append(name)
.append(HttpUtil.SEPARATOR_PARAMETER_VALUE)
.append(UrlEscapers.urlFragmentEscaper().escape(value))
.toString();
separator = HttpUtil.SEPARATOR_PARAMETER;
parameterAdded = true;
}

View File

@@ -57,8 +57,9 @@ public class UrlBuilderTest
builder.appendParameter("i", 123).appendParameter("s", "abc");
builder.appendParameter("b", true).appendParameter("l", 321l);
assertEquals("http://www.short.de?i=123&s=abc&b=true&l=321",
builder.toString());
assertEquals("http://www.short.de?i=123&s=abc&b=true&l=321", builder.toString());
builder.appendParameter("c", "a b");
assertEquals("http://www.short.de?i=123&s=abc&b=true&l=321&c=a%20b", builder.toString());
}
/**