/** * Proceed to the next composed resolvers that has a response to the resolution query. */ private void proceedToNextResolverIterator() { try { while (resolverIterator.hasNext()) { currentResolver = resolverIterator.next(); currentResolverMetadataIterator = currentResolver.resolve(criteria).iterator(); if (currentResolverMetadataIterator.hasNext()) { return; } } } catch (final ResolverException e) { log.debug("Error encountered attempting to fetch results from resolver", e); } } }
/** {@inheritDoc} */ @Override @Nonnull public Iterable<EntityDescriptor> resolve(@Nullable final CriteriaSet criteria) throws ResolverException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); for (final MetadataResolver resolver : resolvers) { try { final Iterable<EntityDescriptor> descriptors = resolver.resolve(criteria); if (descriptors != null && descriptors.iterator().hasNext()) { return descriptors; } } catch (final ResolverException e) { log.warn("Error retrieving metadata from resolver of type {}, proceeding to next resolver", resolver.getClass().getName(), e); continue; } } return Collections.emptyList(); }
@Nullable @Override public Service lookup(final @Nonnull String serviceURL) { try { final List<EntityDescriptor> entities = Lists.newArrayList(metadataResolver.resolve(criteria(serviceURL))); if (entities.size() > 1) { throw new ResolverException("Multiple results found"); } else if (entities.size() == 1) { return create(serviceURL, entities.get(0)); } } catch (final ResolverException e) { log.warn("Metadata resolution failed for {}", serviceURL, e); } return null; }
ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); final Iterable<EntityDescriptor> entityDescriptorsSource = entityDescriptorResolver.resolve(criteria); if (!entityDescriptorsSource.iterator().hasNext()) { log.debug("Resolved no EntityDescriptors via underlying MetadataResolver, returning empty collection");
/** {@inheritDoc} */ @Override @Nonnull public Iterable<EntityDescriptor> resolve(final CriteriaSet criteria) throws ResolverException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); ServiceableComponent<MetadataResolver> component = null; try { component = service.getServiceableComponent(); if (null == component) { log.error("RelyingPartyMetadataProvider '{}': Error accessing underlying metadata source: " + "Invalid configuration.", getId()); } else { final MetadataResolver resolver = component.getComponent(); return resolver.resolve(criteria); } } catch (final ResolverException e) { log.error("RelyingPartyMetadataProvider '{}': Error during resolution", getId(), e); } finally { if (null != component) { component.unpinComponent(); } } return Collections.EMPTY_SET; }
criteriaSet.add(new BindingCriterion(CollectionUtils.wrap(SAMLConstants.SAML2_POST_BINDING_URI))); val it = samlResolver.resolve(criteriaSet); it.forEach(entityDescriptor -> { val spssoDescriptor = entityDescriptor.getSPSSODescriptor(SAMLConstants.SAML20P_NS);