Class DomainValidator
- java.lang.Object
-
- org.apache.bval.extras.constraints.net.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):
isValidInfrastructureTld(java.lang.String)
- validates infrastructure TLDs (.arpa
, etc.)isValidGenericTld(java.lang.String)
- validates generic TLDs (.com, .org
, etc.)isValidCountryCodeTld(java.lang.String)
- validates country code TLDs (.us, .uk, .cn
, etc.)
(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 Summary
Constructors Constructor Description DomainValidator()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
initialize(Domain domain)
boolean
isValid(CharSequence domain, jakarta.validation.ConstraintValidatorContext context)
(package private) static boolean
isValidCountryCodeTld(String ccTld)
Returns true if the specifiedString
matches any IANA-defined country code top-level domain.(package private) static boolean
isValidGenericTld(String gTld)
Returns true if the specifiedString
matches any IANA-defined generic top-level domain.(package private) static boolean
isValidInfrastructureTld(String iTld)
Returns true if the specifiedString
matches any IANA-defined infrastructure top-level domain.(package private) static boolean
isValidLocalTld(String iTld)
Returns true if the specifiedString
matches any widely used "local" domains (localhost or localdomain).(package private) boolean
isValidTld(String tld)
Returns true if the specifiedString
matches any IANA-defined top-level domain.
-
-
-
Method Detail
-
isValid
public boolean isValid(CharSequence domain, jakarta.validation.ConstraintValidatorContext context)
- Specified by:
isValid
in interfacejakarta.validation.ConstraintValidator<Domain,CharSequence>
-
isValidTld
boolean isValidTld(String tld)
Returns true if the specifiedString
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 specifiedString
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 specifiedString
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 specifiedString
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 specifiedString
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 interfacejakarta.validation.ConstraintValidator<Domain,CharSequence>
-
-