package at.gv.egiz.eaaf.modules.pvp2.test.dummy; import java.io.IOException; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.List; import at.gv.egiz.eaaf.core.exceptions.EaafConfigurationException; import at.gv.egiz.eaaf.core.impl.http.IHttpClientFactory; import at.gv.egiz.eaaf.modules.pvp2.exception.Pvp2MetadataException; import at.gv.egiz.eaaf.modules.pvp2.impl.metadata.AbstractChainingMetadataProvider; import at.gv.egiz.eaaf.modules.pvp2.impl.metadata.PvpMetadataResolverFactory; import org.opensaml.saml.metadata.resolver.MetadataResolver; import org.opensaml.saml.metadata.resolver.filter.MetadataFilter; import org.opensaml.saml.metadata.resolver.filter.MetadataFilterChain; import org.springframework.beans.factory.annotation.Autowired; public class DummyMetadataProvider extends AbstractChainingMetadataProvider { private final List configuredMetadataUrls = new ArrayList<>(); private String metadataProviderName; @Autowired PvpMetadataResolverFactory resolverFactory; @Autowired IHttpClientFactory httpClientFactory; private final MetadataFilterChain metadataFilters = new MetadataFilterChain(); @Override protected String getMetadataUrl(String entityId) throws EaafConfigurationException { return entityId; } @Override protected MetadataResolver createNewMetadataProvider(String entityId) throws EaafConfigurationException, IOException, CertificateException { try { return resolverFactory.createMetadataProvider(entityId, metadataFilters, entityId, null, httpClientFactory.getHttpClient()); } catch (final Pvp2MetadataException e) { throw new EaafConfigurationException("internal.pvp.04", new Object[] {entityId}, e); } } @Override protected List getAllMetadataUrlsFromConfiguration() throws EaafConfigurationException { return configuredMetadataUrls; } @Override protected String getMetadataProviderId() { return metadataProviderName; } public void addMetadataUrls(List metadataUrls) { configuredMetadataUrls.addAll(metadataUrls); } public void clearMetadataUrls() { configuredMetadataUrls.clear(); } public void setMetadataProviderName(String name) { metadataProviderName = name; } public void setMetadataFilters(List filtersToUse) { metadataFilters.setFilters(filtersToUse); } }