mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-01-18 13:32:10 +01:00
escape url parameters ub UrlBuilder in order to fix issue #847
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user