@Singleton @Named(value="trustedChecksums") public final class TrustedChecksumsArtifactResolverPostProcessor extends ArtifactResolverPostProcessorSupport
It uses a list of ChecksumAlgorithmFactory
ies to work with, by default SHA-1.
Configuration keys:
aether.artifactResolver.postProcessor.trustedChecksums.checksumAlgorithms
- Comma separated
list of ChecksumAlgorithmFactory
names to use (default "SHA-1").aether.artifactResolver.postProcessor.trustedChecksums.failIfMissing
- To fail if artifact
being validated is missing a trusted checksum (default false
).aether.artifactResolver.postProcessor.trustedChecksums.snapshots
- Should snapshot artifacts be
handled (validated or recorded). Snapshots are by "best practice" in-house produced, hence should be trusted
(default false
).aether.artifactResolver.postProcessor.trustedChecksums.record
- If this value set to true
,
this component with not validate but "record" encountered artifact checksums instead
(default false
).
This component uses TrustedChecksumsSource
as source of checksums for validation and also to "record" the
calculated checksums. To have this component usable, there must exist at least one enabled checksum source. In case
of multiple checksum sources enabled, ALL of them are used as source for validation or recording. This
implies that if two enabled checksum sources "disagree" about an artifact checksum, the validation failure is
inevitable.
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CHECKSUM_ALGORITHMS_CACHE_KEY |
private ChecksumAlgorithmFactorySelector |
checksumAlgorithmFactorySelector |
private static java.lang.String |
CONF_NAME_CHECKSUM_ALGORITHMS |
private static java.lang.String |
CONF_NAME_FAIL_IF_MISSING |
private static java.lang.String |
CONF_NAME_RECORD |
private static java.lang.String |
CONF_NAME_SNAPSHOTS |
private static java.lang.String |
DEFAULT_CHECKSUM_ALGORITHMS |
private static org.slf4j.Logger |
LOGGER |
static java.lang.String |
NAME |
private java.util.Map<java.lang.String,TrustedChecksumsSource> |
trustedChecksumsSources |
Constructor and Description |
---|
TrustedChecksumsArtifactResolverPostProcessor(ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector,
java.util.Map<java.lang.String,TrustedChecksumsSource> trustedChecksumsSources) |
Modifier and Type | Method and Description |
---|---|
protected void |
doPostProcess(RepositorySystemSession session,
java.util.List<ArtifactResult> artifactResults) |
private void |
recordArtifactChecksums(RepositorySystemSession session,
ArtifactResult artifactResult,
java.util.List<ChecksumAlgorithmFactory> checksumAlgorithmFactories)
Calculates and records checksums into trusted sources that support writing.
|
private boolean |
validateArtifactChecksums(RepositorySystemSession session,
ArtifactResult artifactResult,
java.util.List<ChecksumAlgorithmFactory> checksumAlgorithmFactories,
boolean failIfMissing)
Validates trusted checksums against
ArtifactResult , returns true denoting "valid" checksums or
false denoting "invalid" checksums. |
configPropKey, isEnabled, postProcess
public static final java.lang.String NAME
private static final java.lang.String CONF_NAME_CHECKSUM_ALGORITHMS
private static final java.lang.String DEFAULT_CHECKSUM_ALGORITHMS
private static final java.lang.String CONF_NAME_FAIL_IF_MISSING
private static final java.lang.String CONF_NAME_SNAPSHOTS
private static final java.lang.String CONF_NAME_RECORD
private static final java.lang.String CHECKSUM_ALGORITHMS_CACHE_KEY
private static final org.slf4j.Logger LOGGER
private final ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector
private final java.util.Map<java.lang.String,TrustedChecksumsSource> trustedChecksumsSources
@Inject public TrustedChecksumsArtifactResolverPostProcessor(ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector, java.util.Map<java.lang.String,TrustedChecksumsSource> trustedChecksumsSources)
protected void doPostProcess(RepositorySystemSession session, java.util.List<ArtifactResult> artifactResults)
doPostProcess
in class ArtifactResolverPostProcessorSupport
private void recordArtifactChecksums(RepositorySystemSession session, ArtifactResult artifactResult, java.util.List<ChecksumAlgorithmFactory> checksumAlgorithmFactories)
private boolean validateArtifactChecksums(RepositorySystemSession session, ArtifactResult artifactResult, java.util.List<ChecksumAlgorithmFactory> checksumAlgorithmFactories, boolean failIfMissing)
ArtifactResult
, returns true
denoting "valid" checksums or
false
denoting "invalid" checksums.