Class URIUtils

java.lang.Object
com.nimbusds.oauth2.sdk.util.URIUtils

public final class URIUtils extends Object
URI operations.
  • Method Details

    • getBaseURI

      public static URI getBaseURI(URI uri)
      Gets the base part (schema, host, port and path) of the specified URI.
      Parameters:
      uri - The URI. May be null.
      Returns:
      The base part of the URI, null if the original URI is null or doesn't specify a protocol.
    • prependPath

      public static URI prependPath(URI uri, String pathComponent)
      Prepends the specified path component to a URI. The prepended and any existing path component are always joined with a single slash ('/') between them
      Parameters:
      uri - The URI, null if not specified.
      pathComponent - The path component to prepend, null if not specified.
      Returns:
      The URI with prepended path component, null if the original URI wasn't specified.
    • prependLeadingSlashIfMissing

      Prepends a leading slash `/` if missing to the specified string.
      Parameters:
      s - The string, null if not specified.
      Returns:
      The string with leading slash, null if not originally specified.
    • stripLeadingSlashIfPresent

      Strips any leading slashes '/' if present from the specified string.
      Parameters:
      s - The string, null if not specified.
      Returns:
      The string with no leading slash, null if not originally specified.
    • joinPathComponents

      public static String joinPathComponents(String c1, String c2)
      Joins two path components. If the two path components are not null or empty they are joined so that there is only a single slash ('/') between them.
      Parameters:
      c1 - The first path component, null if not specified.
      c2 - The second path component, null if not specified.
      Returns:
      The joined path components, null if both are not specified, or if one is null the other unmodified.
    • stripQueryString

      public static URI stripQueryString(URI uri)
      Strips the query string from the specified URI.
      Parameters:
      uri - The URI. May be null.'
      Returns:
      The URI with stripped query string, null if the original URI is null or doesn't specify a protocol.
    • removeTrailingSlash

      public static URI removeTrailingSlash(URI uri)
      Removes the trailing slash ("/") from the specified URI, if present.
      Parameters:
      uri - The URI. May be null.
      Returns:
      The URI with no trailing slash, null if the original URI is null.
    • ensureSchemeIsHTTPS

      public static void ensureSchemeIsHTTPS(URI uri)
      Ensures the scheme of the specified URI is https.
      Parameters:
      uri - The URI to check, null if not specified.
      Throws:
      IllegalArgumentException - If the URI is specified and the scheme is not https.
    • ensureSchemeIsHTTPSorHTTP

      public static void ensureSchemeIsHTTPSorHTTP(URI uri)
      Ensures the scheme of the specified URI is https or http.
      Parameters:
      uri - The URI to check, null if not specified.
      Throws:
      IllegalArgumentException - If the URI is specified and the scheme is not https or http.
    • ensureSchemeIsNotProhibited

      public static void ensureSchemeIsNotProhibited(URI uri, Set<String> prohibitedURISchemes)
      Ensures the scheme of the specified URI is not prohibited.
      Parameters:
      uri - The URI to check, null if not specified.
      prohibitedURISchemes - The prohibited URI schemes (should be in lower case), empty or null if not specified.
      Throws:
      IllegalArgumentException - If the URI is specified and its scheme is prohibited.
    • ensureQueryIsNotProhibited

      public static void ensureQueryIsNotProhibited(URI uri, Set<String> prohibitedQueryParamNames)
      Ensures the query of the specified URI is not prohibited.
      Parameters:
      uri - The URI to check, null if not specified.
      prohibitedQueryParamNames - The prohibited query parameter names, empty or null if not specified.
      Throws:
      IllegalArgumentException - If the URI is specified and includes prohibited query parameter names.
    • toStringList

      public static List<String> toStringList(Collection<URI> uriList)
      Returns a string list representation of the specified URI collection. Collection items that are null are not returned.
      Parameters:
      uriList - The URI collection, null if not specified.
      Returns:
      The string list, null if not specified.
    • toStringList

      public static List<String> toStringList(Collection<URI> uriList, boolean ignoreNulls)
      Returns a string list representation of the specified URI collection.
      Parameters:
      uriList - The URI collection, null if not specified.
      ignoreNulls - true to not include null values.
      Returns:
      The string list, null if not specified.
    • isLocalHost

      public static boolean isLocalHost(URI uri)
      Returns true if the specified URI is for a localhost, 127.0.0.1 IPv4 or ::1 / 0:0:0:0:0:0:0:1 address.
      Parameters:
      uri - The URI. Must not be null.
      Returns:
      true if the URI is for a localhost, else false.