docs: public static SignatureValidationFilter buildSignatureValidationFilter(final Resource signatureResourceLocation) throws Exception {
          if (!ResourceUtils.doesResourceExist(signatureResourceLocation)) {
              LOGGER.warn("Resource [{}] cannot be located", signatureResourceLocation);
              return null;
          }
  
          val keyInfoProviderList = new ArrayList<KeyInfoProvider>();
          keyInfoProviderList.add(new RSAKeyValueProvider());
          keyInfoProviderList.add(new DSAKeyValueProvider());
          keyInfoProviderList.add(new DEREncodedKeyValueProvider());
          keyInfoProviderList.add(new InlineX509DataProvider());
  
          LOGGER.debug("Attempting to resolve credentials from [{}]", signatureResourceLocation);
          val credential = buildCredentialForMetadataSignatureValidation(signatureResourceLocation);
          LOGGER.info("Successfully resolved credentials from [{}]", signatureResourceLocation);
  
          LOGGER.debug("Configuring credential resolver for key signature trust engine @ [{}]", credential.getCredentialType().getSimpleName());
          val resolver = new StaticCredentialResolver(credential);
          val keyInfoResolver = new BasicProviderKeyInfoCredentialResolver(keyInfoProviderList);
          val trustEngine = new ExplicitKeySignatureTrustEngine(resolver, keyInfoResolver);
  
          LOGGER.debug("Adding signature validation filter based on the configured trust engine");
          val signatureValidationFilter = new SignatureValidationFilter(trustEngine);
          signatureValidationFilter.setDefaultCriteria(new SignatureValidationCriteriaSetFactoryBean().getObject());
  
          LOGGER.debug("Added metadata SignatureValidationFilter with signature from [{}]", signatureResourceLocation);
          return signatureValidationFilter;
      }