public static String replaceQueryInUrl(String url, Map<String, Iterable<String>> params) { String query = buildQueryStringForUrl(params); url = removeQueryStringFromUrl(url); return url + "?" + query; }
private static String buildHTMLFormRedirect(String redirectUrl, Map<String, Iterable<String>> params) { redirectUrl = URLUtils.removeQueryStringFromUrl(redirectUrl); StringBuilder formPostContent = new StringBuilder(); formPostContent .append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" + "<html><head><title>sso redirect</title>" + "<meta http-equiv=\"Expires\" content=\"Mon, 01 Jan 1990 00:00:01 GMT\" />" + "<meta http-equiv=\"pragma\" content=\"no-cache\" />" + "<meta http-equiv=\"cache-control\" content=\"no-cache\" />" + "</head>" + "<body onload=\"document.forms[0].submit();\">"); formPostContent.append("<form action=\"").append(redirectUrl).append("\" method=\"POST\">"); for (String key : params.keySet()) { for (String val : params.get(key)) { formPostContent.append("<input type=\"hidden\" name=\"") .append(key) .append("\" value=\"") .append(val) .append("\"/>"); } } formPostContent.append("</form></body></html>"); return formPostContent.toString(); }
public static String buildSubUrl(String url, String... subpaths) { URLPath urlPath = URLPath.fromString(subpaths); if (urlPath.isEmpty()) { return url; } String query = URLUtils.getQueryStringFromUrl(url); url = URLUtils.removeQueryStringFromUrl(url); if (!(url == null || url.isEmpty()) && !(url.endsWith("/"))) { url += "/"; } url += urlPath.asString(); url = URLUtils.appendQueryToUrl(url, query); return url; }