Class DnsValidator

java.lang.Object
com.digicert.validation.methods.dns.DnsValidator

public class DnsValidator extends Object
DnsValidator is a class that provides methods to prepare and validate DNS records for domain validation.

This class implements Validation for the following methods:

The DnsValidator class is responsible for handling the preparation and validation of DNS records as part of the domain control validation process. It utilizes various utility classes and handlers to generate random values, verify domain names, and validate DNS records. The class ensures that the DNS records are correctly prepared and validated according to the specified DNS type and challenge type.

  • Field Details

    • randomValueGenerator

      private final RandomValueGenerator randomValueGenerator
      Utility class for generating random values
    • dnsValidationHandler

      private final DnsValidationHandler dnsValidationHandler
      Handler for DNS Validation
    • randomValueVerifier

      private final RandomValueVerifier randomValueVerifier
      Utility class for random value verification
    • domainNameUtils

      private final DomainNameUtils domainNameUtils
      Utility class for domain name operations
    • allowedDnsTypes

      private final List<DnsType> allowedDnsTypes
      List of allowed DNS Types for DNS Validation
  • Constructor Details

    • DnsValidator

      public DnsValidator(DcvContext dcvContext)
      Constructor for DnsValidator

      This constructor initializes the DnsValidator class with the necessary dependencies and configuration. It retrieves the required instances from the provided DcvContext and sets up the utility classes and handlers for DNS validation.

      Parameters:
      dcvContext - context where we can find the needed dependencies / configuration
  • Method Details

    • prepare

      public DnsPreparationResponse prepare(DnsPreparation dnsPreparation) throws DcvException
      Prepare the DNS record for validation

      This method prepares the DNS record for validation by generating the necessary random values and setting up the validation state. It verifies the DNS preparation parameters and constructs a DnsPreparationResponse object containing the random value and allowed FQDNs.

      Parameters:
      dnsPreparation - DnsPreparation object containing the domain, DNS Type and Challenge Type
      Returns:
      DnsPreparationResponse object containing the random value and allowed FQDNs
      Throws:
      DcvException - if the DNS Preparation fails.
    • validate

      public DomainValidationEvidence validate(DnsValidationRequest dnsValidationRequest) throws DcvException
      Validate the DNS record for domain validation

      This method validates the DNS record for domain validation by interacting with the DNS server and verifying the DNS records. It checks the validity of the DNS validation request and constructs a DomainValidationEvidence object if the validation is successful.

      Parameters:
      dnsValidationRequest - DnsValidationRequest object containing the domain, DNS Type, Challenge Type and Validation State
      Returns:
      DomainValidationEvidence object containing the domain validation evidence
      Throws:
      ValidationException - if the DNS Validation fails.
      InputException - if the input parameters are invalid.

      See @ValidationException for more details

      DcvException
    • createDomainValidationEvidence

      private DomainValidationEvidence createDomainValidationEvidence(DnsValidationRequest dnsValidationRequest, DnsValidationResponse dnsValidationResponse)
      Creates a DomainValidationEvidence object from the DnsValidationRequest and DnsValidationResponse
      Parameters:
      dnsValidationRequest - The DnsValidationRequest object containing the domain, DNS Type, challenge type, and Validation State used
      dnsValidationResponse - The DnsValidationResponse object containing the server, domain, and random value or request token used
      Returns:
      DomainValidationEvidence object containing the domain validation evidence
    • verifyDnsValidationRequest

      private void verifyDnsValidationRequest(DnsValidationRequest request) throws DcvException
      Performs Validation on DnsValidationRequest Fields.
      Parameters:
      request - DnsValidationRequest object to validate
      Throws:
      InputException - if the input parameters are invalid. See @InputException for more details
      DcvException
    • verifyDnsPreparation

      private void verifyDnsPreparation(DnsPreparation dnsPreparation) throws InputException
      Performs Validation on DnsPreparation Fields.
      Parameters:
      dnsPreparation - DnsPreparation object to validate
      Throws:
      InputException - if the DNS Preparation fails. See @InputException for more details