Class PublicSuffixMatcher

java.lang.Object
org.apache.hc.client5.http.psl.PublicSuffixMatcher

@Contract(threading=SAFE) public final class PublicSuffixMatcher extends Object
Utility class that can test if DNS names match the content of the Public Suffix List.

An up-to-date list of suffixes can be obtained from publicsuffix.org

Since:
4.4
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • findEntry

      private static DomainType findEntry(Map<String, DomainType> map, String rule)
    • match

      private static boolean match(DomainType domainType, DomainType expectedType)
    • getDomainRoot

      public String getDomainRoot(String domain)
      Returns registrable part of the domain for the given domain name or null if given domain represents a public suffix.
      Parameters:
      domain -
      Returns:
      domain root
    • getDomainRoot

      public String getDomainRoot(String domain, DomainType expectedType)
      Returns registrable part of the domain for the given domain name or null if given domain represents a public suffix.
      Parameters:
      domain -
      expectedType - expected domain type or null if any.
      Returns:
      domain root
      Since:
      4.5
    • resolveDomainRoot

      PublicSuffixMatcher.DomainRootInfo resolveDomainRoot(String domain, DomainType expectedType)
    • matches

      public boolean matches(String domain)
      Tests whether the given domain matches any of the entries from the public suffix list.
    • matches

      public boolean matches(String domain, DomainType expectedType)
      Tests whether the given domain matches any of entry from the public suffix list.
      Parameters:
      domain -
      expectedType - expected domain type or null if any.
      Returns:
      true if the given domain matches any of the public suffixes.
      Since:
      4.5
    • verify

      public boolean verify(String domain)
      Verifies if the given domain does not represent a public domain root and is allowed to set cookies, have an identity represented by a certificate, etc.

      This method tolerates a leading dot in the domain name, for example '.example.com' which will be automatically stripped.

      Since:
      5.5
    • verifyInternal

      @Internal public boolean verifyInternal(String domain)