Class CertificateValidator
- All Implemented Interfaces:
ProcessExecutorProvider<CertificateProcessExecutor>
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Checks if the Validator configuration is validprotected DiagnosticDataBuilder
createDiagnosticDataBuilder
(ValidationContext validationContext) Creates and fills theDiagnosticDataBuilder
with a relevant dataprotected ValidationContext
This method creates a new instance ofValidationContext
performing preparation of validation data, certificate chain building, revocation request, as well as custom validation checks execution.static CertificateValidator
fromCertificate
(CertificateToken token) Creates a CertificateValidator from a certificateTokenprotected ValidationPolicyLoader
Gets a default validation policy loader for a certificate validationReturns a default for a validator process executorfinal XmlDiagnosticData
This method retrievesXmlDiagnosticData
containing all information relevant for the validation process, including the certificate and revocation tokens obtained from online resources, e.g.protected ValidationPolicy
loadValidationPolicy
(DSSDocument policyDocument, DSSDocument cryptographicSuiteDocument) This method loads a validation policy from thepolicyDocument
and acryptographicSuiteDocument
.protected DiagnosticDataBuilder
Creates aDiagnosticDataBuilder
protected ValidationContext
prepareValidationContext
(CertificateVerifier certificateVerifier) Initializes and fillsValidationContext
for a certificate token validationGets theCertificateProcessExecutor
void
setCertificateVerifier
(CertificateVerifier certificateVerifier) Sets the CertificateVerifiervoid
setDefaultDigestAlgorithm
(DigestAlgorithm digestAlgorithm) This method allows to change the Digest Algorithm that will be used for tokens' digest calculation Default :DigestAlgorithm.SHA256
void
Sets the Locale to use for messages in reportsvoid
setProcessExecutor
(CertificateProcessExecutor processExecutor) This method provides the possibility to set the specificCustomProcessExecutor
void
setTokenExtractionStrategy
(TokenExtractionStrategy tokenExtractionStrategy) Sets the TokenExtractionStrategyvoid
setTokenIdentifierProvider
(TokenIdentifierProvider identifierProvider) Sets the TokenIdentifierProvidervoid
setValidationContextExecutor
(ValidationContextExecutor validationContextExecutor) This method setsValidationContextExecutor
for validation of the preparedValidationContext
Default:eu.europa.esig.dss.validation.executor.context.DefaultValidationContextExecutor
(performs basic validation of tokens, including certificate chain building and revocation data extraction, without processing of validity checks)void
setValidationTime
(Date validationTime) Sets the validationTimevalidate()
Validates the certificate with a default validation policyvalidate
(DSSDocument policyDocument) Validates the certificate with the validation policy obtained frompolicyDocument
.validate
(DSSDocument policyDocument, DSSDocument cryptographicSuiteDocument) Validates the certificate using the provided validation policy and a cryptographic suite.validate
(ValidationPolicy validationPolicy) Validated the certificate with a custom validation policyValidates the certificate with the validation policy obtained frompolicyFile
.Validates the certificate using the provided validation policy and a cryptographic suite.validate
(InputStream policyDataStream) Validates the document and all its signatures.validate
(InputStream policyDataStream, InputStream cryptographicSuiteStream) Validates the certificate using the provided validation policy and a cryptographic suite.Validates the certificate with the validation policy obtained frompolicyResourcePath
.Validates the certificate using the provided validation policy and a cryptographic suite.Validates the certificate with the validation policy obtained fromvalidationPolicyURL
.Validates the certificate using the provided validation policy and a cryptographic suite.protected void
validateContext
(ValidationContext validationContext) Process the validation
-
Method Details
-
fromCertificate
Creates a CertificateValidator from a certificateToken- Parameters:
token
-CertificateToken
- Returns:
CertificateValidator
-
setCertificateVerifier
Sets the CertificateVerifier- Parameters:
certificateVerifier
-CertificateVerifier
-
setTokenExtractionStrategy
Sets the TokenExtractionStrategy- Parameters:
tokenExtractionStrategy
-TokenExtractionStrategy
-
setTokenIdentifierProvider
Sets the TokenIdentifierProvider- Parameters:
identifierProvider
-TokenIdentifierProvider
-
setValidationTime
Sets the validationTime- Parameters:
validationTime
-Date
-
setLocale
Sets the Locale to use for messages in reports- Parameters:
locale
-Locale
-
setValidationContextExecutor
This method setsValidationContextExecutor
for validation of the preparedValidationContext
Default:eu.europa.esig.dss.validation.executor.context.DefaultValidationContextExecutor
(performs basic validation of tokens, including certificate chain building and revocation data extraction, without processing of validity checks)- Parameters:
validationContextExecutor
-ValidationContextExecutor
-
setDefaultDigestAlgorithm
This method allows to change the Digest Algorithm that will be used for tokens' digest calculation Default :DigestAlgorithm.SHA256
- Parameters:
digestAlgorithm
-DigestAlgorithm
to use
-
validate
Validates the certificate with a default validation policy- Returns:
CertificateReports
-
validate
Validates the certificate with the validation policy obtained fromvalidationPolicyURL
. If null the default file is used.- Parameters:
validationPolicyURL
-URL
- Returns:
CertificateReports
-
validate
Validates the certificate with the validation policy obtained frompolicyResourcePath
. If null or empty the default file is used.- Parameters:
policyResourcePath
- is located against the classpath (getClass().getResourceAsStream), and NOT the filesystem- Returns:
CertificateReports
-
validate
Validates the certificate with the validation policy obtained frompolicyFile
. If null or file does not exist the default file is used.- Parameters:
policyFile
- contains the validation policy (xml) asFile
- Returns:
CertificateReports
-
validate
Validates the certificate with the validation policy obtained frompolicyDocument
. If null the default file is used.- Parameters:
policyDocument
- contains the validation policy (xml) asDSSDocument
- Returns:
CertificateReports
-
validate
Validates the document and all its signatures. The policyDataStream contains the constraint file. If null the default file is used.- Parameters:
policyDataStream
- theInputStream
with the validation policy- Returns:
CertificateReports
-
validate
Validates the certificate using the provided validation policy and a cryptographic suite. If cryptographic suite is set, the constraints from validation policy will be overwritten by the constraints retrieved from the cryptographic suite. When set, the cryptographic suite constraints are applied with the default behavior, using FAIL level. For a customizable cryptographic suite and its applicability context, please useeu.europa.esig.dss.validation.policy.ValidationPolicyLoader
.The format of validation policy should correspond to the DSS XML Validation policy (please include 'dss-policy-jaxb' module in your classpath), unless a custom validation policy has been implemented. The format of cryptographic suite should correspond to XML or JSON schema as defined in ETSI TS 119 322 (please include 'dss-policy-crypto-xml' or 'dss-policy-crypto-json' to the classpath), unless a custom cryptographic suite has been implemented.
If the validation policy URL is set then the policy constraints are retrieved from this location. If null or empty the default file is used.
- Parameters:
validationPolicyURL
-URL
to the used validation policy filecryptographicSuiteURL
-URL
to the used cryptographic suite file- Returns:
CertificateReports
-
validate
Validates the certificate using the provided validation policy and a cryptographic suite. If cryptographic suite is set, the constraints from validation policy will be overwritten by the constraints retrieved from the cryptographic suite. When set, the cryptographic suite constraints are applied with the default behavior, using FAIL level. For a customizable cryptographic suite and its applicability context, please useeu.europa.esig.dss.validation.policy.ValidationPolicyLoader
.The format of validation policy should correspond to the DSS XML Validation policy (please include 'dss-policy-jaxb' module in your classpath), unless a custom validation policy has been implemented. The format of cryptographic suite should correspond to XML or JSON schema as defined in ETSI TS 119 322 (please include 'dss-policy-crypto-xml' or 'dss-policy-crypto-json' to the classpath), unless a custom cryptographic suite has been implemented.
The
policyResourcePath
andcryptographicSuitePath
specify the constraint file. If null or empty the default file is used.- Parameters:
policyResourcePath
-String
path to the validation policy file, located against the classpath (getClass().getResourceAsStream), and NOT the filesystemcryptographicSuitePath
-String
path to the cryptographic suite file, located against the classpath (getClass().getResourceAsStream), and NOT the filesystem- Returns:
CertificateReports
-
validate
Validates the certificate using the provided validation policy and a cryptographic suite. If cryptographic suite is set, the constraints from validation policy will be overwritten by the constraints retrieved from the cryptographic suite. When set, the cryptographic suite constraints are applied with the default behavior, using FAIL level. For a customizable cryptographic suite and its applicability context, please useeu.europa.esig.dss.validation.policy.ValidationPolicyLoader
.The format of validation policy should correspond to the DSS XML Validation policy (please include 'dss-policy-jaxb' module in your classpath), unless a custom validation policy has been implemented. The format of cryptographic suite should correspond to XML or JSON schema as defined in ETSI TS 119 322 (please include 'dss-policy-crypto-xml' or 'dss-policy-crypto-json' to the classpath), unless a custom cryptographic suite has been implemented.
The
File
parameters specify the constraint file. If null the default file is used.- Parameters:
policyFile
-File
containing the validation policycryptographicSuiteFile
-File
containing the cryptographic suite- Returns:
CertificateReports
-
validate
public CertificateReports validate(DSSDocument policyDocument, DSSDocument cryptographicSuiteDocument) Validates the certificate using the provided validation policy and a cryptographic suite. If cryptographic suite is set, the constraints from validation policy will be overwritten by the constraints retrieved from the cryptographic suite. When set, the cryptographic suite constraints are applied with the default behavior, using FAIL level. For a customizable cryptographic suite and its applicability context, please useeu.europa.esig.dss.validation.policy.ValidationPolicyLoader
.The format of validation policy should correspond to the DSS XML Validation policy (please include 'dss-policy-jaxb' module in your classpath), unless a custom validation policy has been implemented. The format of cryptographic suite should correspond to XML or JSON schema as defined in ETSI TS 119 322 (please include 'dss-policy-crypto-xml' or 'dss-policy-crypto-json' to the classpath), unless a custom cryptographic suite has been implemented.
The
DSSDocument
parameters contains the constraint files. If null the default file is used.- Parameters:
policyDocument
-DSSDocument
containing the validation policycryptographicSuiteDocument
-DSSDocument
containing the cryptographic suite- Returns:
CertificateReports
-
loadValidationPolicy
protected ValidationPolicy loadValidationPolicy(DSSDocument policyDocument, DSSDocument cryptographicSuiteDocument) This method loads a validation policy from thepolicyDocument
and acryptographicSuiteDocument
. When a document is not provided, a default policy or cryptographic suite is used, respectively.- Parameters:
policyDocument
-DSSDocument
containing the validation policy documentcryptographicSuiteDocument
-DSSDocument
containing the cryptographic suite document- Returns:
ValidationPolicy
-
fromDefaultCertificateValidationPolicyLoader
Gets a default validation policy loader for a certificate validation- Returns:
ValidationPolicyLoader
-
validate
public CertificateReports validate(InputStream policyDataStream, InputStream cryptographicSuiteStream) Validates the certificate using the provided validation policy and a cryptographic suite. If cryptographic suite is set, the constraints from validation policy will be overwritten by the constraints retrieved from the cryptographic suite. When set, the cryptographic suite constraints are applied with the default behavior, using FAIL level. For a customizable cryptographic suite and its applicability context, please useeu.europa.esig.dss.validation.policy.ValidationPolicyLoader
.The format of validation policy should correspond to the DSS XML Validation policy (please include 'dss-policy-jaxb' module in your classpath), unless a custom validation policy has been implemented. The format of cryptographic suite should correspond to XML or JSON schema as defined in ETSI TS 119 322 (please include 'dss-policy-crypto-xml' or 'dss-policy-crypto-json' to the classpath), unless a custom cryptographic suite has been implemented.
The
InputStream
parameters contains the constraint files. If null the default file is used.- Parameters:
policyDataStream
-InputStream
containing the validation policycryptographicSuiteStream
-InputStream
containing the cryptographic suite- Returns:
CertificateReports
-
validate
Validated the certificate with a custom validation policy- Parameters:
validationPolicy
-ValidationPolicy
- Returns:
CertificateReports
-
assertConfigurationValid
protected void assertConfigurationValid()Checks if the Validator configuration is valid -
getDiagnosticData
This method retrievesXmlDiagnosticData
containing all information relevant for the validation process, including the certificate and revocation tokens obtained from online resources, e.g. AIA, CRL, OCSP (when applicable).- Returns:
XmlDiagnosticData
-
prepareValidationContext
Initializes and fillsValidationContext
for a certificate token validation- Parameters:
certificateVerifier
-CertificateVerifier
to be used- Returns:
ValidationContext
-
createValidationContext
This method creates a new instance ofValidationContext
performing preparation of validation data, certificate chain building, revocation request, as well as custom validation checks execution.- Returns:
ValidationContext
-
prepareDiagnosticDataBuilder
Creates aDiagnosticDataBuilder
- Returns:
DiagnosticDataBuilder
-
validateContext
Process the validation- Parameters:
validationContext
-ValidationContext
to process
-
createDiagnosticDataBuilder
Creates and fills theDiagnosticDataBuilder
with a relevant data- Parameters:
validationContext
-ValidationContext
used for the validation- Returns:
- filled
DiagnosticDataBuilder
-
setProcessExecutor
Description copied from interface:ProcessExecutorProvider
This method provides the possibility to set the specificCustomProcessExecutor
- Specified by:
setProcessExecutor
in interfaceProcessExecutorProvider<CertificateProcessExecutor>
- Parameters:
processExecutor
-ProcessExecutor
-
provideProcessExecutorInstance
Gets theCertificateProcessExecutor
- Returns:
CertificateProcessExecutor
-
getDefaultProcessExecutor
Description copied from interface:ProcessExecutorProvider
Returns a default for a validator process executor- Specified by:
getDefaultProcessExecutor
in interfaceProcessExecutorProvider<CertificateProcessExecutor>
- Returns:
- Process Executor
-