in core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java [195:259]
public static Map<String, String> getFilterInfo(String url) throws UnsupportedEncodingException {
List<String> info = new ArrayList<>();
Map<String, String> filterValues = new HashMap<>();
String keyword = "";
Map<String, String> mapRequest = RequestUrl.uRLRequest(url);
if (mapRequest.get("search") != null) {
try {
keyword = mapRequest.get("search");
keyword = URLDecoder.decode(keyword.replaceAll("%(?![0-9a-fA-F]{2})", "%25"), "UTF-8");
if (keyword.contains("%2b") || keyword.contains("%20") || keyword.contains("%25")) {
keyword = keyword.replace("%2b", " ");
keyword = keyword.replace("%20", " ");
keyword = keyword.replace("%25", " ");
}
keyword = keyword.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();
} catch (UnsupportedEncodingException e) {
LOG.error(mapRequest.get("search"), e);
}
if (!"".equals(keyword)) {
info.add(keyword);
}
}
if (mapRequest.get("ids") != null && mapRequest.get("values") != null) {
String idRaw = URLDecoder.decode(mapRequest.get("ids"), "UTF-8");
String valueRaw = URLDecoder.decode(mapRequest.get("values"), "UTF-8");
String[] ids = idRaw.split(":");
String[] values = valueRaw.split(":");
int a = ids.length;
int b = values.length;
int l = a < b ? a : b;
for (int i = 0; i < l; i++) {
try {
values[i] = values[i].replaceAll("%(?![0-9a-fA-F]{2})", "%25");
if (!URLDecoder.decode(values[i], "UTF-8").equals(keyword) && !URLDecoder.decode(values[i], "UTF-8").equals("")) {
String item = URLDecoder.decode(values[i], "UTF-8").trim();
if (item.contains("%2b") || item.contains("%20") || item.contains("%25")) {
item = item.replace("%2b", " ");
item = item.replace("%20", " ");
item = item.replace("%25", " ");
}
item = item.replaceAll("[-+^:,*_\"]", " ").replace("\\", " ").replaceAll("\\s+", " ").trim();
filterValues.put(ids[i], item);
}
} catch (Exception e) {
LOG.error("Error occurred while decoding value " + values[i], e);
}
}
}
if (mapRequest.get("temporalsearch") != null) {
String temporalsearch = mapRequest.get("temporalsearch");
temporalsearch = URLDecoder.decode(temporalsearch.replaceAll("%(?![0-9a-fA-F]{2})", "%25"), "UTF-8");
filterValues.put("temporalsearch", temporalsearch);
}
return filterValues;
}