Search in sources :

Example 1 with SamlRegisteredServiceMetadataResolver

use of org.apereo.cas.support.saml.services.idp.metadata.cache.resolver.SamlRegisteredServiceMetadataResolver in project cas by apereo.

the class SamlRegisteredServiceMetadataResolverCacheLoader method load.

@Override
@Synchronized
@SneakyThrows
public ChainingMetadataResolver load(final SamlRegisteredService service) {
    final ChainingMetadataResolver metadataResolver = new ChainingMetadataResolver();
    final List<MetadataResolver> metadataResolvers = new ArrayList<>();
    final Collection<SamlRegisteredServiceMetadataResolver> availableResolvers = this.metadataResolutionPlan.getRegisteredMetadataResolvers();
    availableResolvers.stream().filter(Objects::nonNull).filter(r -> r.supports(service)).map(r -> r.resolve(service)).forEach(metadataResolvers::addAll);
    if (metadataResolvers.isEmpty()) {
        throw new SamlException("No metadata resolvers could be configured for service " + service.getName() + " with metadata location " + service.getMetadataLocation());
    }
    metadataResolver.setId(ChainingMetadataResolver.class.getCanonicalName());
    metadataResolver.setResolvers(metadataResolvers);
    metadataResolver.initialize();
    LOGGER.debug("Metadata resolvers active for this request are [{}]", metadataResolver);
    return metadataResolver;
}
Also used : Synchronized(lombok.Synchronized) CacheLoader(com.github.benmanes.caffeine.cache.CacheLoader) SneakyThrows(lombok.SneakyThrows) HttpClient(org.apereo.cas.util.http.HttpClient) Collection(java.util.Collection) SamlRegisteredServiceMetadataResolutionPlan(org.apereo.cas.support.saml.services.idp.metadata.plan.SamlRegisteredServiceMetadataResolutionPlan) MetadataResolver(org.opensaml.saml.metadata.resolver.MetadataResolver) ArrayList(java.util.ArrayList) OpenSamlConfigBean(org.apereo.cas.support.saml.OpenSamlConfigBean) SamlRegisteredServiceMetadataResolver(org.apereo.cas.support.saml.services.idp.metadata.cache.resolver.SamlRegisteredServiceMetadataResolver) Objects(java.util.Objects) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) SamlRegisteredService(org.apereo.cas.support.saml.services.SamlRegisteredService) SamlException(org.apereo.cas.support.saml.SamlException) ChainingMetadataResolver(org.opensaml.saml.metadata.resolver.ChainingMetadataResolver) AllArgsConstructor(lombok.AllArgsConstructor) ChainingMetadataResolver(org.opensaml.saml.metadata.resolver.ChainingMetadataResolver) SamlRegisteredServiceMetadataResolver(org.apereo.cas.support.saml.services.idp.metadata.cache.resolver.SamlRegisteredServiceMetadataResolver) ArrayList(java.util.ArrayList) SamlException(org.apereo.cas.support.saml.SamlException) MetadataResolver(org.opensaml.saml.metadata.resolver.MetadataResolver) SamlRegisteredServiceMetadataResolver(org.apereo.cas.support.saml.services.idp.metadata.cache.resolver.SamlRegisteredServiceMetadataResolver) ChainingMetadataResolver(org.opensaml.saml.metadata.resolver.ChainingMetadataResolver) Synchronized(lombok.Synchronized) SneakyThrows(lombok.SneakyThrows)

Aggregations

CacheLoader (com.github.benmanes.caffeine.cache.CacheLoader)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 List (java.util.List)1 Objects (java.util.Objects)1 AllArgsConstructor (lombok.AllArgsConstructor)1 SneakyThrows (lombok.SneakyThrows)1 Synchronized (lombok.Synchronized)1 Slf4j (lombok.extern.slf4j.Slf4j)1 OpenSamlConfigBean (org.apereo.cas.support.saml.OpenSamlConfigBean)1 SamlException (org.apereo.cas.support.saml.SamlException)1 SamlRegisteredService (org.apereo.cas.support.saml.services.SamlRegisteredService)1 SamlRegisteredServiceMetadataResolver (org.apereo.cas.support.saml.services.idp.metadata.cache.resolver.SamlRegisteredServiceMetadataResolver)1 SamlRegisteredServiceMetadataResolutionPlan (org.apereo.cas.support.saml.services.idp.metadata.plan.SamlRegisteredServiceMetadataResolutionPlan)1 HttpClient (org.apereo.cas.util.http.HttpClient)1 ChainingMetadataResolver (org.opensaml.saml.metadata.resolver.ChainingMetadataResolver)1 MetadataResolver (org.opensaml.saml.metadata.resolver.MetadataResolver)1