handle invalid relative urls (#1939)

This commit is contained in:
Athou
2025-10-17 08:54:56 +02:00
parent 2808f4b1a2
commit 8871ae894f
2 changed files with 12 additions and 1 deletions

View File

@@ -8,8 +8,10 @@ import org.netpreserve.urlcanon.Canonicalizer;
import org.netpreserve.urlcanon.ParsedUrl;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
@UtilityClass
@Slf4j
public class Urls {
private static final String ESCAPED_QUESTION_MARK = Pattern.quote("?");
@@ -42,7 +44,12 @@ public class Urls {
return null;
}
return URI.create(baseUrl).resolve(relativeUrl).toString();
try {
return URI.create(baseUrl).resolve(relativeUrl).toString();
} catch (IllegalArgumentException e) {
log.debug("Unable to create absolute url from relative url: {} base: {}", relativeUrl, baseUrl, e);
return null;
}
}
public static String removeTrailingSlash(String url) {

View File

@@ -62,6 +62,10 @@ class UrlsTest {
Assertions.assertEquals("http://ergoemacs.org/emacs/elisp_all_about_lines.html",
Urls.toAbsolute("elisp_all_about_lines.html", "blog.xml", "http://ergoemacs.org/emacs/blog.xml"));
// invalid relative urls
Assertions.assertEquals("title:10001280",
Urls.toAbsolute("title:10001280", "https://www.berliner-zeitung.de", "https://www.berliner-zeitung.de/feed.xml"));
}
@Test