SPSSODescriptor spSsoDescriptor = added.getEntityDescriptor(metadataEntityId). getSPSSODescriptor(SAMLConstants.SAML20P_NS); if (null != spSsoDescriptor &&
@Test public void testGetAvailableProvidersForDefaultZone() throws Exception { IdentityZone defaultZone = samlTestUtils.getUaaZoneWithSamlConfig(); IdentityZoneHolder.set(defaultZone); when(providerProvisioning.retrieveActive(defaultZone.getId())) .thenReturn(Arrays.asList( new SamlServiceProvider[]{mockSamlServiceProviderForZone(defaultZone.getId())} )); assertEquals(1, configurator.getSamlServiceProvidersForZone(defaultZone).size()); //NonSnarlIdpMetadataManager also returns local idp as entity, needs 2 assertEquals(2, this.metadataManager.getAvailableProviders().size()); SamlServiceProvider confProvider = configurator.getSamlServiceProvidersForZone(defaultZone).get(0) .getSamlServiceProvider(); ExtendedMetadataDelegate metadataProvider = this.metadataManager.getAvailableProviders().get(1); metadataProvider.initialize(); EntityDescriptor entity = metadataProvider.getEntityDescriptor(confProvider.getEntityId()); assertNotNull(entity); assertEquals(confProvider.getEntityId(), entity.getEntityID()); }
@Test public void testGetAvailableProvidersRemovesNonPersistedProvidersInConfigurator() throws Exception { IdentityZone defaultZone = samlTestUtils.getUaaZoneWithSamlConfig(); configurator.validateSamlServiceProvider(mockSamlServiceProviderForZone(defaultZone.getId())); configurator.validateSamlServiceProvider(mockSamlServiceProvider("non-persisted-saml-sp")); when(providerProvisioning.retrieveActive(defaultZone.getId())) .thenReturn(Arrays.asList(new SamlServiceProvider[]{mockSamlServiceProviderForZone(defaultZone.getId())})); IdentityZoneHolder.set(defaultZone); assertEquals(1, configurator.getSamlServiceProvidersForZone(defaultZone).size()); assertEquals(2, this.metadataManager.getAvailableProviders().size()); SamlServiceProvider confProvider = configurator.getSamlServiceProvidersForZone(defaultZone).get(0) .getSamlServiceProvider(); ExtendedMetadataDelegate metadataProvider = this.metadataManager.getAvailableProviders().get(1); metadataProvider.initialize(); EntityDescriptor entity = metadataProvider.getEntityDescriptor(confProvider.getEntityId()); assertNotNull(entity); assertEquals(confProvider.getEntityId(), entity.getEntityID()); }
/** * Tries to load extended metadata for the given entity. The following algorithm is used: * <ol> * <li>Verifies that entityId can be located using the delegate (in other words makes sure we don't return extended metdata * for entities we don't have the basic ones for</li> * <li>In case extended metadata is available and contains value for the entityId it is returned</li> * <li>Returns default metadata otherwise</li> * </ol> * * @param entityID entity to load metadata for * @return extended metadata or null in case no default is given and entity can be located or is not present in the delegate * @throws MetadataProviderException error */ public ExtendedMetadata getExtendedMetadata(String entityID) throws MetadataProviderException { EntityDescriptor entityDescriptor = getEntityDescriptor(entityID); if (entityDescriptor == null) { return null; } ExtendedMetadata extendedMetadata = null; if (extendedMetadataMap != null) { extendedMetadata = extendedMetadataMap.get(entityID); } if (extendedMetadata == null) { return defaultMetadata; } else { return extendedMetadata; } }