From 80686cc60dc0bccb7a42fddefefcf13dcabdd80a Mon Sep 17 00:00:00 2001 From: Andreas Fitzek Date: Tue, 19 Aug 2014 11:45:45 +0200 Subject: Fixed #18, Get Parameters in external urls are not discarded --- .../pdfas/web/helper/UrlParameterExtractor.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/UrlParameterExtractor.java (limited to 'pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/UrlParameterExtractor.java') diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/UrlParameterExtractor.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/UrlParameterExtractor.java new file mode 100644 index 00000000..4c793524 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/UrlParameterExtractor.java @@ -0,0 +1,46 @@ +package at.gv.egiz.pdfas.web.helper; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URL; +import java.net.URLDecoder; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Map.Entry; + +public class UrlParameterExtractor { + + + public static Map splitQuery(URL url) throws UnsupportedEncodingException { + Map query_pairs = new LinkedHashMap(); + String query = url.getQuery(); + String[] pairs = query.split("&"); + for (String pair : pairs) { + int idx = pair.indexOf("="); + query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); + } + return query_pairs; + } + + public static String buildParameterFormString(URL url) throws IOException { + Map query_pairs = splitQuery(url); + Iterator> entryIt = query_pairs.entrySet().iterator(); + + if(query_pairs.isEmpty()) { + return ""; + } + String genericTemplate = PdfAsHelper.getGenericTemplate(); + StringBuilder sb = new StringBuilder(); + while(entryIt.hasNext()) { + Entry entry = entryIt.next(); + + String current = genericTemplate.replace("##NAME##", entry.getKey()); + current = current.replace("##VALUE##", entry.getValue()); + sb.append(current); + } + + return sb.toString(); + } + +} -- cgit v1.2.3