code: @SneakyThrows
      protected SignatureSigningParameters buildSignatureSigningParameters(final RoleDescriptor descriptor,
                                                                           final SamlRegisteredService service) {
          val criteria = new CriteriaSet();
          val signatureSigningConfiguration = getSignatureSigningConfiguration(descriptor, service);
          criteria.add(new SignatureSigningConfigurationCriterion(signatureSigningConfiguration));
          criteria.add(new RoleDescriptorCriterion(descriptor));
          val resolver = new SAMLMetadataSignatureSigningParametersResolver();
          LOGGER.trace("Resolving signature signing parameters for [{}]", descriptor.getElementQName().getLocalPart());
          val params = resolver.resolveSingle(criteria);
          if (params != null) {
              LOGGER.trace("Created signature signing parameters."
                              + "\nSignature algorithm: [{}]"
                              + "\nSignature canonicalization algorithm: [{}]"
                              + "\nSignature reference digest methods: [{}]",
                      params.getSignatureAlgorithm(),
                      params.getSignatureCanonicalizationAlgorithm(),
                      params.getSignatureReferenceDigestMethod());
          } else {
              LOGGER.warn("Unable to resolve SignatureSigningParameters, response signing will fail."
                      + " Make sure domain names in IDP metadata URLs and certificates match CAS domain name");
          }
          return params;
      }
docs: Build signature signing parameters signature signing parameters.
  
  @param descriptor the descriptor
  @param service    the service
  @return the signature signing parameters