Refine UriComponentsBuilder parsing
This commit refines the expressions for the scheme, user info, host and port parts of the URL in UriComponentsBuilder to better conform to RFC 3986. Fixes gh-32616
This commit is contained in:
@@ -72,19 +72,19 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
|
||||
|
||||
private static final Pattern QUERY_PARAM_PATTERN = Pattern.compile("([^&=]+)(=?)([^&]+)?");
|
||||
|
||||
private static final String SCHEME_PATTERN = "([^:/?#]+):";
|
||||
private static final String SCHEME_PATTERN = "([^:/?#\\\\]+):";
|
||||
|
||||
private static final String HTTP_PATTERN = "(?i)(http|https):";
|
||||
|
||||
private static final String USERINFO_PATTERN = "([^/?#]*)";
|
||||
private static final String USERINFO_PATTERN = "([^/?#\\\\]*)";
|
||||
|
||||
private static final String HOST_IPV4_PATTERN = "[^/?#:]*";
|
||||
private static final String HOST_IPV4_PATTERN = "[^/?#:\\\\]*";
|
||||
|
||||
private static final String HOST_IPV6_PATTERN = "\\[[\\p{XDigit}:.]*[%\\p{Alnum}]*]";
|
||||
|
||||
private static final String HOST_PATTERN = "(" + HOST_IPV6_PATTERN + "|" + HOST_IPV4_PATTERN + ")";
|
||||
|
||||
private static final String PORT_PATTERN = "(\\{[^}]+\\}?|[^/?#]*)";
|
||||
private static final String PORT_PATTERN = "(\\{[^}]+\\}?|[^/?#\\\\]*)";
|
||||
|
||||
private static final String PATH_PATTERN = "([^?#]*)";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user