Java Jsoup.clean-保留没有基URI的相对链接

Java Jsoup.clean-保留没有基URI的相对链接,java,jsoup,Java,Jsoup,我正在使用JSOUP1.13.1清理字符串以防止XSS。 我想保留相对链接,但无法指定基本URI,因为有许多域。 在这种情况下指定whitelist.PreserveRelativeLink(true)没有任何区别。 我注意到,通过从白名单中删除协议,我得到了我想要的。 我想了解这是否有任何其他副作用,也想了解为什么会起作用。 下面是一些演示这一点的代码 public static void main(String[] args) { String html = "<a

我正在使用JSOUP1.13.1清理字符串以防止XSS。
我想保留相对链接,但无法指定基本URI,因为有许多域。
在这种情况下指定whitelist.PreserveRelativeLink(true)没有任何区别。
我注意到,通过从白名单中删除协议,我得到了我想要的。
我想了解这是否有任何其他副作用,也想了解为什么会起作用。
下面是一些演示这一点的代码

public static void main(String[] args) {
    String html = "<a href=\"https://absolute.link\"></a><a href=\"relativeLink\"></a>";
    Whitelist whitelist = Whitelist.relaxed();

    System.out.println("Whitelist.relaxed(): " + Jsoup.clean(html, whitelist));

    whitelist.removeProtocols("a", "href", "http", "https", "mailto", "ftp");

    System.out.println("Protocols removed  : " + Jsoup.clean(html, whitelist));
}
publicstaticvoidmain(字符串[]args){
字符串html=“”;
白名单白名单=白名单。松弛();
System.out.println(“Whitelist.relaxed():”+Jsoup.clean(html,Whitelist));
删除协议(“a”、“href”、“http”、“https”、“mailto”、“ftp”);
System.out.println(“删除协议:+Jsoup.clean(html,白名单));
}
这将产生以下输出:

Whitelist.relaxed(): <a href="https://absolute.link"></a><a></a>
Protocols removed  : <a href="https://absolute.link"></a><a href="relativeLink"></a>
Whitelist.relaxed():