Class DomainValidator

  • All Implemented Interfaces:
    jakarta.validation.ConstraintValidator<Domain,​CharSequence>

    public class DomainValidator
    extends Object
    implements jakarta.validation.ConstraintValidator<Domain,​CharSequence>

    Domain name validation routines.

    This validator provides methods for validating Internet domain names and top-level domains.

    Domain names are evaluated according to the standards RFC1034, section 3, and RFC1123, section 2.1. No accomodation is provided for the specialized needs of other applications; if the domain name has been URL-encoded, for example, validation will fail even though the equivalent plaintext version of the same name would have passed.

    Validation is also provided for top-level domains (TLDs) as defined and maintained by the Internet Assigned Numbers Authority (IANA):

    (NOTE: This class does not provide IP address lookup for domain names or methods to ensure that a given domain name matches a specific IP; see InetAddress for that functionality.)

    • Constructor Detail

      • DomainValidator

        public DomainValidator()
    • Method Detail

      • isValid

        public boolean isValid​(CharSequence domain,
                               jakarta.validation.ConstraintValidatorContext context)
        Specified by:
        isValid in interface jakarta.validation.ConstraintValidator<Domain,​CharSequence>
      • isValidTld

        boolean isValidTld​(String tld)
        Returns true if the specified String matches any IANA-defined top-level domain. Leading dots are ignored if present. The search is case-sensitive.
        Parameters:
        tld - the parameter to check for TLD status
        Returns:
        true if the parameter is a TLD
      • isValidInfrastructureTld

        static boolean isValidInfrastructureTld​(String iTld)
        Returns true if the specified String matches any IANA-defined infrastructure top-level domain. Leading dots are ignored if present. The search is case-sensitive.
        Parameters:
        iTld - the parameter to check for infrastructure TLD status
        Returns:
        true if the parameter is an infrastructure TLD
      • isValidGenericTld

        static boolean isValidGenericTld​(String gTld)
        Returns true if the specified String matches any IANA-defined generic top-level domain. Leading dots are ignored if present. The search is case-sensitive.
        Parameters:
        gTld - the parameter to check for generic TLD status
        Returns:
        true if the parameter is a generic TLD
      • isValidCountryCodeTld

        static boolean isValidCountryCodeTld​(String ccTld)
        Returns true if the specified String matches any IANA-defined country code top-level domain. Leading dots are ignored if present. The search is case-sensitive.
        Parameters:
        ccTld - the parameter to check for country code TLD status
        Returns:
        true if the parameter is a country code TLD
      • isValidLocalTld

        static boolean isValidLocalTld​(String iTld)
        Returns true if the specified String matches any widely used "local" domains (localhost or localdomain). Leading dots are ignored if present. The search is case-sensitive.
        Parameters:
        iTld - the parameter to check for local TLD status
        Returns:
        true if the parameter is an local TLD
      • initialize

        public void initialize​(Domain domain)
        Specified by:
        initialize in interface jakarta.validation.ConstraintValidator<Domain,​CharSequence>