|
|
|
@ -164,7 +164,7 @@ public class htmlFilterContentScraper extends htmlFilterAbstractScraper implemen
|
|
|
|
|
|
|
|
|
|
// (this is different from previous normal forms where a '/' must not appear in root paths; here it must appear. Makes everything easier.)
|
|
|
|
|
if (path.length() == 0 || path.charAt(0) != '/') path = "/" + path;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pattern pathPattern = Pattern.compile("(/[^/\\.]+/)[.]{2}(?=/)|/\\.(?=/)|/(?=/)");
|
|
|
|
|
Matcher matcher = pathPattern.matcher(path);
|
|
|
|
|
while (matcher.find()) {
|
|
|
|
@ -172,6 +172,10 @@ public class htmlFilterContentScraper extends htmlFilterAbstractScraper implemen
|
|
|
|
|
matcher.reset(path);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (path.startsWith("/../")) {
|
|
|
|
|
path = path.substring(3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (defaultPort) return url.getProtocol() + "://" + url.getHost() + path;
|
|
|
|
|
return url.getProtocol() + "://" + url.getHost() + ":" + url.getPort() + path;
|
|
|
|
|
}
|
|
|
|
|