/** {@inheritDoc} */ @Override public void refresh() throws ResolverException { for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { ((RefreshableMetadataResolver) resolver).refresh(); } } }
/** {@inheritDoc} */ @Override @Nullable public DateTime getLastUpdate() { DateTime ret = null; for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { final DateTime lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate(); if (ret == null || ret.isBefore(lastUpdate)) { ret = lastUpdate; } } } return ret; }
/** {@inheritDoc} */ @Override @Nullable public DateTime getLastRefresh() { DateTime ret = null; for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { final DateTime lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh(); if (ret == null || ret.isBefore(lastRefresh)) { ret = lastRefresh; } } } return ret; }
protected ChainingMetadataResolver initChainingMetadataResolver(final MetadataResolver idpMetadataProvider, final MetadataResolver spMetadataProvider) { final ChainingMetadataResolver metadataManager = new ChainingMetadataResolver(); metadataManager.setId(ChainingMetadataResolver.class.getCanonicalName()); try { final List<MetadataResolver> list = new ArrayList<>(); list.add(idpMetadataProvider); list.add(spMetadataProvider); metadataManager.setResolvers(list); metadataManager.initialize(); } catch (final ResolverException e) { throw new TechnicalException("Error adding idp or sp metadatas to manager", e); } catch (final ComponentInitializationException e) { throw new TechnicalException("Error initializing manager", e); } return metadataManager; }
/** {@inheritDoc} */ @Override public EntityDescriptor resolveSingle(@Nullable final CriteriaSet criteria) throws ResolverException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); EntityDescriptor metadata = null; for (final MetadataResolver resolver : resolvers) { metadata = resolver.resolveSingle(criteria); if (metadata != null) { return metadata; } } return null; }
public Map<String,DateTime> getValue() { final Builder mapBuilder = ImmutableMap.<String,DateTime>builder(); final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent(); if (component != null) { try { for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) { if (resolver instanceof RefreshableMetadataResolver && ((RefreshableMetadataResolver) resolver).getLastUpdate() != null) { mapBuilder.put(resolver.getId(), ((RefreshableMetadataResolver) resolver).getLastUpdate()); } } } finally { component.unpinComponent(); } } return mapBuilder.build(); } });
public Map<String,DateTime> getValue() { final Builder mapBuilder = ImmutableMap.<String,DateTime>builder(); final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent(); if (component != null) { try { for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) { if (resolver instanceof RefreshableMetadataResolver && ((RefreshableMetadataResolver) resolver).getLastRefresh() != null) { mapBuilder.put(resolver.getId(), ((RefreshableMetadataResolver) resolver).getLastRefresh()); } } } finally { component.unpinComponent(); } } return mapBuilder.build(); } });
/** * 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); } } }
public Map<String,DateTime> getValue() { final Builder mapBuilder = ImmutableMap.<String,DateTime>builder(); final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent(); if (component != null) { try { for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) { if (resolver instanceof ExtendedBatchMetadataResolver && ((ExtendedBatchMetadataResolver) resolver).getRootValidUntil() != null) { mapBuilder.put(resolver.getId(), ((ExtendedBatchMetadataResolver) resolver).getRootValidUntil()); } } } finally { component.unpinComponent(); } } return mapBuilder.build(); } });
public Map<String,DateTime> getValue() { final Builder mapBuilder = ImmutableMap.<String,DateTime>builder(); final ServiceableComponent<MetadataResolver> component = getService().getServiceableComponent(); if (component != null) { try { for (final MetadataResolver resolver : getMetadataResolvers(component.getComponent())) { if (resolver instanceof ExtendedRefreshableMetadataResolver && ((ExtendedRefreshableMetadataResolver) resolver) .getLastSuccessfulRefresh() != null) { mapBuilder.put(resolver.getId(), ((ExtendedRefreshableMetadataResolver) resolver) .getLastSuccessfulRefresh()); } } } finally { component.unpinComponent(); } } return mapBuilder.build(); } });
@Override protected void buildEntityCriteriaForSigningCredential(final RequestAbstractType profileRequest, final CriteriaSet criteriaSet) { criteriaSet.add(new EntityIdCriterion(casSamlIdPMetadataResolver.getId())); criteriaSet.add(new EntityRoleCriterion(IDPSSODescriptor.DEFAULT_ELEMENT_NAME)); } }
/** {@inheritDoc} */ @Override @Nullable public EntityDescriptor resolveSingle(@Nullable final CriteriaSet criteria) throws ResolverException { ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this); final Iterable<EntityDescriptor> iterable = resolve(criteria); if (iterable != null) { final Iterator<EntityDescriptor> iterator = iterable.iterator(); if (iterator != null && iterator.hasNext()) { return iterator.next(); } } return null; }
@Override @SneakyThrows public EntityDescriptor getEntityDescriptorForEntityId(final String entityId) { val criterions = new CriteriaSet(new EntityIdCriterion(entityId)); if (this.metadataResolver != null) { return this.metadataResolver.resolveSingle(criterions); } return null; }
/** * Resolve an entity descriptor based on entityID using the wrapped metadata resolver. * * @param entityID the entityID of the EntityDescriptor to resolve. * @return the resolved EntityDescriptor, or null if not found * @throws ResolverException if there is a problem resolving the EntityDescriptor */ protected EntityDescriptor doGetEntityDescriptor(final String entityID) throws ResolverException { //TODO should perhaps pass through the entire original CriteriaSet return entityDescriptorResolver.resolveSingle(new CriteriaSet(new EntityIdCriterion(entityID))); }
/** {@inheritDoc} */ @Override public void refresh() throws ResolverException { for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { ((RefreshableMetadataResolver) resolver).refresh(); } } }
/** {@inheritDoc} */ @Override @Nullable public DateTime getLastUpdate() { DateTime ret = null; for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { final DateTime lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate(); if (ret == null || ret.isBefore(lastUpdate)) { ret = lastUpdate; } } } return ret; }
/** {@inheritDoc} */ @Override @Nullable public DateTime getLastRefresh() { DateTime ret = null; for (final MetadataResolver resolver : resolvers) { if (resolver instanceof RefreshableMetadataResolver) { final DateTime lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh(); if (ret == null || ret.isBefore(lastRefresh)) { ret = lastRefresh; } } } return ret; }
@Override public MetadataResolver resolve(final SamlRegisteredService service) { LOGGER.debug("Resolving metadata for [{}] at [{}].", service.getName(), service.getMetadataLocation()); val k = new SamlRegisteredServiceCacheKey(service); LOGGER.trace("Locating cached metadata resolver using key [{}] for service [{}]", k.getId(), service.getName()); val resolver = this.cache.get(k); LOGGER.debug("Loaded and cached SAML metadata [{}] from [{}]", resolver.getId(), service.getMetadataLocation()); return resolver; } }
@Override public final XMLObject getEntityDescriptorElement() { try { return resolve().resolveSingle(new CriteriaSet(new EntityIdCriterion(this.idpEntityId))); } catch (final ResolverException e) { throw new SAMLException("Error initializing idpMetadataProvider", e); } } }
@Override public XMLObject getEntityDescriptorElement() { try { return resolve().resolveSingle(new CriteriaSet(new EntityIdCriterion(getEntityId()))); } catch (final ResolverException e) { throw new SAMLException("Error initializing idpMetadataProvider", e); } } }