Issue 4235 - changes from review
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
parent
4bc32e314b
commit
0de5976651
|
@ -434,8 +434,8 @@ public class OpenIdAuthenticator extends LoginAuthenticator
|
||||||
String redirectUri = URIUtil.addPaths(request.getContextPath(), _errorPage);
|
String redirectUri = URIUtil.addPaths(request.getContextPath(), _errorPage);
|
||||||
if (message != null)
|
if (message != null)
|
||||||
{
|
{
|
||||||
String query = URIUtil.combineQueryParams(ERROR_PARAMETER + "=" + UrlEncoded.encodeString(message), _errorQuery);
|
String query = URIUtil.addQueries(ERROR_PARAMETER + "=" + UrlEncoded.encodeString(message), _errorQuery);
|
||||||
redirectUri = URIUtil.addPaths(request.getContextPath(), _errorPath) + "?" + query;
|
redirectUri = URIUtil.addPathQuery(URIUtil.addPaths(request.getContextPath(), _errorPath), query);
|
||||||
baseResponse.sendRedirect(getRedirectCode(baseRequest.getHttpVersion()), redirectUri);
|
baseResponse.sendRedirect(getRedirectCode(baseRequest.getHttpVersion()), redirectUri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -714,6 +714,20 @@ public class URIUtil
|
||||||
return buf.toString();
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Add a path and a query string
|
||||||
|
* @param path The path which may already contain contain a query
|
||||||
|
* @param query The query string or null if no query to be added
|
||||||
|
* @return The path with any non null query added after a '?' or '&' as appropriate.
|
||||||
|
*/
|
||||||
|
public static String addPathQuery(String path, String query)
|
||||||
|
{
|
||||||
|
if (query == null)
|
||||||
|
return path;
|
||||||
|
if (path.indexOf('?') >= 0)
|
||||||
|
return path + '&' + query;
|
||||||
|
return path + '?' + query;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a URI, attempt to get the last segment.
|
* Given a URI, attempt to get the last segment.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -1312,19 +1326,13 @@ public class URIUtil
|
||||||
* @param query2 the second query string.
|
* @param query2 the second query string.
|
||||||
* @return the combination of the two query strings.
|
* @return the combination of the two query strings.
|
||||||
*/
|
*/
|
||||||
public static String combineQueryParams(String query1, String query2)
|
public static String addQueries(String query1, String query2)
|
||||||
{
|
{
|
||||||
StringBuilder queryBuilder = new StringBuilder();
|
if (StringUtil.isEmpty(query1))
|
||||||
if (!StringUtil.isEmpty(query1))
|
return query2;
|
||||||
{
|
if (StringUtil.isEmpty(query2))
|
||||||
queryBuilder.append(query1);
|
return query1;
|
||||||
if (!StringUtil.isEmpty(query2))
|
return query1 + '&' + query2;
|
||||||
queryBuilder.append("&");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!StringUtil.isEmpty(query2))
|
|
||||||
queryBuilder.append(query2);
|
|
||||||
return queryBuilder.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static URI getJarSource(URI uri)
|
public static URI getJarSource(URI uri)
|
||||||
|
|
|
@ -730,6 +730,6 @@ public class URIUtilTest
|
||||||
@MethodSource("addQueryParameterSource")
|
@MethodSource("addQueryParameterSource")
|
||||||
public void testAddQueryParam(String param1, String param2, Matcher<String> matcher)
|
public void testAddQueryParam(String param1, String param2, Matcher<String> matcher)
|
||||||
{
|
{
|
||||||
assertThat(URIUtil.combineQueryParams(param1, param2), matcher);
|
assertThat(URIUtil.addQueries(param1, param2), matcher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue