Class URLUtils


  • public class URLUtils
    extends Object
    • Field Detail

      • LOG

        protected static final org.slf4j.Logger LOG
    • Constructor Detail

      • URLUtils

        public URLUtils()
    • Method Detail

      • addParameterToURL

        public static String addParameterToURL​(String url,
                                               String paramName,
                                               String paramValue,
                                               boolean useEncoding)
      • addQueryStringToUrl

        public static String addQueryStringToUrl​(String url,
                                                 Map<String,​String[]> queryStringParams,
                                                 Predicate<String> predicate)
        Parameters:
        url - URL to process.
        queryStringParams - Query parameters to add.
        predicate - Predicate that checks whether the parameter should be added. Only parameters to which the predicate applies are added.
        Returns:
        The given URL with the parameters to which the predicate applies..
      • addQueryStringToUrl

        public static String addQueryStringToUrl​(String url,
                                                 String queryString,
                                                 Predicate<String> predicate)
        Adds each query parameter from the query string to which the predicate applies to the given URL.
        Parameters:
        url - URL to process.
        queryString - A query string to add to the URL, such as ?foo=bar&hello=world.
        predicate - Predicate that checks whether the parameter should be added. Only parameters to which the predicate applies are added.
        Returns:
        The given URL with the query parameters to which the predicate applies added.
      • addQueryStringToURL

        public static String addQueryStringToURL​(String url,
                                                 Map<String,​String[]> queryStringParams)
        Adds all query parameters to the given URL.
        Parameters:
        url - URL to process.
        queryStringParams - Query parameters to add. applies are added.
        Returns:
        The given URL with the parameters added.
      • addQueryStringToURL

        @Deprecated
        public static String addQueryStringToURL​(String url,
                                                 Map<String,​String[]> queryStringParams,
                                                 de.xima.cmn.filter.IGenericFilter<String> predicate)
        Adds all query parameters to the given URL.
        Parameters:
        url - URL to process.
        queryStringParams - Query parameters to add.
        predicate - Predicate that checks whether the parameter should be added. Only parameters to which the predicate applies are added.
        Returns:
        The given URL with the parameters to which the predicate applies.
      • addQueryStringToURL

        public static String addQueryStringToURL​(String url,
                                                 String queryString)
      • addQueryStringToURL

        @Deprecated
        public static String addQueryStringToURL​(String url,
                                                 String queryString,
                                                 de.xima.cmn.filter.IGenericFilter<String> predicate)
        Adds each query parameter from the query string to which the predicate applies to the given URL.
        Parameters:
        url - URL to process.
        queryString - A query string to add to the URL, such as ?foo=bar&hello=world.
        predicate - Predicate that checks whether the parameter should be added. Only parameters to which the predicate applies are added.
        Returns:
        The given URL with the query parameters to which the predicate applies added.
      • changeScheme

        public static String changeScheme​(String url,
                                          String newScheme)
        Changes the scheme of a URL (such as https) to the given schema.
        Parameters:
        url - URL to modify.
        newScheme - New schema for the URL.
        Returns:
        The URL with the new scheme.
      • decodeUrlArrayToList

        public static List<String> decodeUrlArrayToList​(String[] urlArray)
        Decodes a array of urls to a list of all decoded urls.
        Parameters:
        urlArray - A array of urls.
        Returns:
        decodedUrlList Decoded url list.
      • decrypt

        @Deprecated
        public static String decrypt​(String str)
        Deprecated.
        Use other encryption methods such as EncryptionUtils.
        Methode zum Entschlüsseln eines Strings
        Parameters:
        str - String to decrypt
        Returns:
        the decrypted String
      • encodePathSegment

        public static String encodePathSegment​(String value)
                                        throws InvalidUriPathSegmentNameException
        Encodes a path segment for a URI so that it can be used a path segment without any characters having a special meaning.
        Parameters:
        value - A value to encode.
        Returns:
        The given segment with URL encoding applied.
        Throws:
        InvalidUriPathSegmentNameException - When he value cannot be encoded, e.g. . and .. always represent path navigation.
      • encrypt

        @Deprecated
        public static String encrypt​(String str)
        Deprecated.
        Use other encryption methods such as EncryptionUtils.
        Methode zum Verschlüsseln eines Strings
        Parameters:
        str - String to encrypt
        Returns:
        the encrypted String
      • getDataUriBytes

        public static URLUtils.DataUriBinary getDataUriBytes​(String dataUri)
        Fetches the binary data from a data URI. This will always returns the plain bytes, regardless of the encoding specified by the data URI.
        Parameters:
        dataUri - A data URI to parse.
        Returns:
        The binary data contained in the data URI.
      • getFullRequestUri

        public static String getFullRequestUri​(javax.servlet.http.HttpServletRequest request)
        Similar to HttpServletRequest.getRequestURI(), but also includes the query string parameters.
        Parameters:
        request - A servlet request to process.
        Returns:
        The reconstructed full request URI.
      • getFullRequestUrl

        public static String getFullRequestUrl​(javax.servlet.http.HttpServletRequest request)
        Similar to HttpServletRequest.getRequestURL(), but also includes the query string parameters.
        Parameters:
        request - A servlet request to process.
        Returns:
        The reconstructed full request URL.
      • normalizePath

        public static List<String> normalizePath​(Iterable<String> pathSegments,
                                                 boolean allowNavigationOutsideRoot)
        Given a list of path segments, normalizes the path by resolving . and .. navigators.
         normalizePath(null, false) --> (empty list)
         normalizePath(null, true) --> (empty list)
         normalizePath(asList("", false)) --> (empty list)
         normalizePath(asList("", true)) --> (empty list)
         normalizePath(asList("foo", "", "", "bar", false)) --> "foo", "bar"
         normalizePath(asList("foo", "bar", false)) --> "foo", "bar"
         normalizePath(asList("foo", bar", true)) --> "foo", "bar"
         normalizePath(asList("foo", ".", "bar", "baz", false)) --> "foo", "bar", "baz"
         normalizePath(asList("foo", ".", "bar", "baz", true)) --> "foo", "bar", "baz"
         normalizePath(asList("foo", "..", "bar", "baz", false)) --> "foo", "baz"
         normalizePath(asList("foo", "..", "bar", "baz", true)) --> "foo", "baz"
         normalizePath(asList("foo", "bar", "..", "..", "..", "baz", false)) --> "..", "baz"
         normalizePath(asList("foo", "bar", "..", "..", "..", "baz", true)) --> "baz"
         normalizePath(asList("..", "..", false)) --> (empty list)
         normalizePath(asList("..", "..", true)) --> "..", ".."
         
        Parameters:
        pathSegments - Path segments to process.
        allowNavigationOutsideRoot - When true, allows the resulting path segments to navigate outside the root dir.
        Returns:
        The normalized list of segments.
      • normalizePath

        public static List<String> normalizePath​(String[] pathSegments,
                                                 boolean allowNavigationOutsideRoot)
        Given a list of path segments, normalizes the path by resolving . and .. navigators.
         normalizePath(null, false) --> (empty list)
         normalizePath(null, true) --> (empty list)
         normalizePath(asList("", false)) --> (empty list)
         normalizePath(asList("", true)) --> (empty list)
         normalizePath(asList("foo", "bar", false)) --> "foo", "bar"
         normalizePath(asList("foo", bar", true)) --> "foo", "bar"
         normalizePath(asList("foo", ".", "bar", "baz", false)) --> "foo", "bar", "baz"
         normalizePath(asList("foo", ".", "bar", "baz", true)) --> "foo", "bar", "baz"
         normalizePath(asList("foo", "..", "bar", "baz", false)) --> "foo", "baz"
         normalizePath(asList("foo", "..", "bar", "baz", true)) --> "foo", "baz"
         normalizePath(asList("foo", "bar", "..", "..", "..", "baz", false)) --> "..", "baz"
         normalizePath(asList("foo", "bar", "..", "..", "..", "baz", true)) --> "baz"
         normalizePath(asList("..", "..", false)) --> (empty list)
         normalizePath(asList("..", "..", true)) --> "..", ".."
         
        Parameters:
        pathSegments - Path segments to process.
        allowNavigationOutsideRoot - When true, allows the resulting path segments to navigate outside the root dir.
        Returns:
        The normalized list of segments.
      • removeAllParametersAndFragment

        public static String removeAllParametersAndFragment​(String url)
        Parameters:
        url - A URL to process.
        Returns:
        The given URL with the fragment and all query parameters removed.
      • removeParameter

        public static String removeParameter​(String url,
                                             String paramName)
      • removeParameter

        public static String removeParameter​(String url,
                                             String paramName,
                                             boolean useEncoding)
      • setParameter

        public static String setParameter​(String url,
                                          String paramName,
                                          String paramValue,
                                          boolean useEncoding)
      • splitPath

        public static List<String> splitPath​(String path,
                                             boolean allowNavigationOutsideRoot)
        Splits a path into its path segments and resolves path navigators.
         splitPath(null, false) --> (empty list)
         splitPath(null, true) --> (empty list)
         splitPath("", false) --> (empty list)
         splitPath("", true) --> (empty list)
         splitPath("foo/bar", false) --> "foo", "bar"
         splitPath("foo/bar", true) --> "foo", "bar"
         splitPath("foo/./bar/baz", false) --> "foo", "bar", "baz"
         splitPath("foo/./bar/baz", true) --> "foo", "bar", "baz"
         splitPath("foo/../bar/baz", false) --> "foo", "baz"
         splitPath("foo/../bar/baz", true) --> "foo", "baz"
         splitPath("foo/bar/../../../baz", false) --> "..", "baz"
         splitPath("foo/bar/../../../baz", true) --> "baz"
         splitPath("../..", false) --> (empty list)
         splitPath("../..", true) --> "..", ".."
         
        Parameters:
        path - Path to split.
        allowNavigationOutsideRoot - When true, allows the resulting path segments to navigate outside the root dir.
        Returns:
        A list of path segments from the given path.