in core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java [126:185]
public String getSearchInfo(String URL) throws UnsupportedEncodingException {
List<String> info = new ArrayList<String>();
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 id_raw = URLDecoder.decode(mapRequest.get("ids"), "UTF-8");
String value_raw = URLDecoder.decode(mapRequest.get("values"), "UTF-8");
String[] ids = id_raw.split(":");
String[] values = value_raw.split(":");
int a = ids.length;
int b = values.length;
int l = a < b ? a : b;
for (int i = 0; i < l; i++) {
if (ids[i].equals("collections") || ids[i].equals("measurement") || ids[i].equals("sensor") || ids[i].equals("platform") || ids[i].equals("variable") || ids[i].equals("spatialcoverage")) {
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();
info.add(item);
}
} catch (Exception e) {
LOG.error(values[i], e);
}
}
}
}
return String.join(",", info);
}