public ExtendedMetadataDelegate getLocalServiceProvider() throws MetadataProviderException { EntityDescriptor descriptor = generator.generateMetadata(); ExtendedMetadata extendedMetadata = generator.generateExtendedMetadata(); log.info("Initialized local service provider for entityID: " + descriptor.getEntityID()); MetadataMemoryProvider memoryProvider = new MetadataMemoryProvider(descriptor); memoryProvider.initialize(); return new ExtendedMetadataDelegate(memoryProvider, extendedMetadata); }
public ExtendedMetadataDelegate getLocalIdp() throws MetadataProviderException { EntityDescriptor descriptor = generator.generateMetadata(); ExtendedMetadata extendedMetadata = generator.generateExtendedMetadata(); log.info("Initialized local identity provider for entityID: " + descriptor.getEntityID()); MetadataMemoryProvider memoryProvider = new MetadataMemoryProvider(descriptor); memoryProvider.initialize(); return new ExtendedMetadataDelegate(memoryProvider, extendedMetadata); }
MetadataMemoryProvider memoryProvider = new MetadataMemoryProvider(descriptor); memoryProvider.initialize(); MetadataProvider metadataProvider = new ExtendedMetadataDelegate(memoryProvider, extendedMetadata);
protected ExtendedMetadataDelegate configureXMLMetadata(SamlIdentityProviderDefinition def) { ConfigMetadataProvider configMetadataProvider = new ConfigMetadataProvider(def.getZoneId(), def.getIdpEntityAlias(), def.getMetaDataLocation()); configMetadataProvider.setParserPool(getParserPool()); ExtendedMetadata extendedMetadata = new ExtendedMetadata(); extendedMetadata.setLocal(false); extendedMetadata.setAlias(def.getIdpEntityAlias()); ExtendedMetadataDelegate delegate = new ExtendedMetadataDelegate(configMetadataProvider, extendedMetadata); delegate.setMetadataTrustCheck(def.isMetadataTrustCheck()); return delegate; }
protected ExtendedMetadataDelegate configureXMLMetadata(SamlServiceProvider provider) { ConfigMetadataProvider configMetadataProvider = new ConfigMetadataProvider(provider.getIdentityZoneId(), provider.getEntityId(), provider.getConfig().getMetaDataLocation()); configMetadataProvider.setParserPool(getParserPool()); ExtendedMetadata extendedMetadata = new ExtendedMetadata(); extendedMetadata.setLocal(false); extendedMetadata.setAlias(provider.getEntityId()); ExtendedMetadataDelegate delegate = new ExtendedMetadataDelegate(configMetadataProvider, extendedMetadata); delegate.setMetadataTrustCheck(provider.getConfig().isMetadataTrustCheck()); return delegate; }
private ExtendedMetadataDelegate getWrappedProvider(MetadataProvider provider) { if (!(provider instanceof ExtendedMetadataDelegate)) { log.debug("Wrapping metadata provider {} with extendedMetadataDelegate", provider); return new ExtendedMetadataDelegate(provider); } else { return (ExtendedMetadataDelegate) provider; } }
@VisibleForTesting protected ExtendedMetadataDelegate createDefaultExtendedMetadataDelegate(MetadataProvider provider, ExtendedMetadata extendedMetadata) { return new ExtendedMetadataDelegate(provider, extendedMetadata); }
private ExtendedMetadataDelegate extendedMetadataDelegate(ExtendedMetadata extendedMetadata) { ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(metadataProvider, extendedMetadata); extendedMetadataDelegate.setMetadataTrustCheck(false); extendedMetadataDelegate.setMetadataRequireSignature(false); return extendedMetadataDelegate; }
@Bean BeanFactoryPostProcessor idpMetadataLoader() { return beanFactory -> { PathMatchingResourcePatternResolver metadataFilesResolver = new PathMatchingResourcePatternResolver(); try { Resource[] idpMetadataFiles = metadataFilesResolver.getResources("classpath:/idp-*.xml"); Stream.of(idpMetadataFiles).forEach(idpMetadataFile -> { try { Timer refreshTimer = new Timer(true); ResourceBackedMetadataProvider delegate = null; delegate = new ResourceBackedMetadataProvider(refreshTimer, new SpringResourceWrapperOpenSAMLResource(idpMetadataFile)); delegate.setParserPool(parserPool()); ExtendedMetadata extendedMetadata = extendedMetadata().clone(); ExtendedMetadataDelegate provider = new ExtendedMetadataDelegate(delegate, extendedMetadata); provider.setMetadataTrustCheck(true); provider.setMetadataRequireSignature(false); String idpFileName = idpMetadataFile.getFilename(); String idpName = idpFileName.substring(idpFileName.lastIndexOf("idp-") + 4, idpFileName.lastIndexOf(".xml")); extendedMetadata.setAlias(idpName); beanFactory.registerSingleton(idpName, provider); log.info("Loaded Idp Metadata bean {}: {}", idpName, idpMetadataFile); } catch (Exception e) { throw new IllegalStateException("Unable to initialize IDP Metadata", e); } }); } catch (Exception e) { throw new IllegalStateException("Unable to initialize IDP Metadata", e); } }; }
@Bean @Qualifier("idp-ssocircle") public ExtendedMetadataDelegate ssoCircleExtendedMetadataProvider() throws MetadataProviderException { String idpSSOCircleMetadataURL = "https://idp.ssocircle.com/idp-meta.xml"; HTTPMetadataProvider httpMetadataProvider = new HTTPMetadataProvider( this.backgroundTaskTimer, httpClient(), idpSSOCircleMetadataURL); httpMetadataProvider.setParserPool(parserPool()); ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(httpMetadataProvider, extendedMetadata()); extendedMetadataDelegate.setMetadataTrustCheck(true); extendedMetadataDelegate.setMetadataRequireSignature(false); backgroundTaskTimer.purge(); return extendedMetadataDelegate; }
@Bean public MetadataProvider identityProvider() throws MetadataProviderException, XMLParserException { Resource resource = defaultResourceLoader.getResource(identityProviderMetadataUrl); ResourceMetadataProvider resourceMetadataProvider = new ResourceMetadataProvider(resource); resourceMetadataProvider.setParserPool(parserPool()); ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(resourceMetadataProvider, extendedMetadata()); extendedMetadataDelegate.setMetadataTrustCheck(true); extendedMetadataDelegate.setMetadataRequireSignature(true); return extendedMetadataDelegate; }
/** * Setup the extended metadata delegate for the IDP. * * @param properties The SAML properties * @return The sso circle of trust metadata provider configured via the url. * @throws MetadataProviderException On any configuration error * @see ExtendedMetadataDelegate * @see HTTPMetadataProvider */ @Bean @Qualifier("idp-ssocircle") public ExtendedMetadataDelegate ssoCircleExtendedMetadataProvider( final SAMLProperties properties ) throws MetadataProviderException { // Create a daemon timer for updating the IDP metadata from the server final Timer backgroundTaskTimer = new Timer(true); final HTTPMetadataProvider httpMetadataProvider = new HTTPMetadataProvider( backgroundTaskTimer, httpClient(), properties.getIdp().getServiceProviderMetadataURL() ); httpMetadataProvider.setParserPool(parserPool()); final ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(httpMetadataProvider, extendedMetadata()); extendedMetadataDelegate.setMetadataTrustCheck(true); extendedMetadataDelegate.setMetadataRequireSignature(false); return extendedMetadataDelegate; }
@Bean @Qualifier("metadata") public CachingMetadataManager metadata() throws MetadataProviderException, ResourceException { List<MetadataProvider> providers = new ArrayList<MetadataProvider>(); if(samlProperties != null && samlProperties.getIdp() != null){ for(SAMLProperties.SamlMetadata samlMetadata : samlProperties.getIdp()){ if(samlMetadata.getType().equals("xml")){ ResourceBackedMetadataProvider resourceBackedMetadataProvider = new ResourceBackedMetadataProvider(backgroundTaskTimer(), new ClasspathResource(samlMetadata.getUrl())); resourceBackedMetadataProvider.setParserPool(parserPool()); ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(resourceBackedMetadataProvider, extendedMetadata()); extendedMetadataDelegate.setMetadataTrustCheck(samlMetadata.isMetadataTrustCheck()); extendedMetadataDelegate.setMetadataRequireSignature(samlMetadata.isMetadataRequireSignature()); backgroundTaskTimer.purge(); providers.add(extendedMetadataDelegate); } else if(samlMetadata.getType().equals("http")){ HTTPMetadataProvider httpMetadataProvider = new HTTPMetadataProvider(backgroundTaskTimer(), httpClient(), samlMetadata.getUrl()); httpMetadataProvider.setParserPool(parserPool()); ExtendedMetadataDelegate extendedMetadataDelegate = new ExtendedMetadataDelegate(httpMetadataProvider, extendedMetadata()); extendedMetadataDelegate.setMetadataTrustCheck(samlMetadata.isMetadataTrustCheck()); extendedMetadataDelegate.setMetadataRequireSignature(samlMetadata.isMetadataRequireSignature()); backgroundTaskTimer.purge(); providers.add(extendedMetadataDelegate); } } } return new CachingMetadataManager(providers); }
MetadataMemoryProvider memoryProvider = new MetadataMemoryProvider(descriptor); memoryProvider.initialize(); MetadataProvider metadataProvider = new ExtendedMetadataDelegate(memoryProvider, extendedMetadata);