The above is because (at least in OpenSAML 2.5.3) ChainingMetadatProvider addMetaDataProvider adds the provider as:Code:28/01/2013 10:38:13 WARN [Metadata-reload] org.springframework.security.saml.metadata.MetadataManager:Metadata refreshing has failed java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.clear(Collections.java:1094) at org.opensaml.saml2.metadata.provider.ChainingMetadataProvider.setProviders(ChainingMetadataProvider.java:104) at org.springframework.security.saml.metadata.MetadataManager.refreshMetadata(MetadataManager.java:203) at org.springframework.security.saml.metadata.CachingMetadataManager.refreshMetadata(CachingMetadataManager.java:86) at org.springframework.security.saml.metadata.MetadataManager$RefreshTask.run(MetadataManager.java:987) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505)
providers = Collections.unmodifiableList(checkedProviders);
setProviders in ChainingMetadataProvider is getting an empty list from CachingMetadataManager line
This is because CachingMetadataManager passes in an empty list in line 203:
// Remove existing providers, they'll get repopulated
super.setProviders(Collections.<MetadataProvider>e mptyList());
I'll move back to a prior version of opensaml to see if that fixes the problem. Anyone else seeing this? Is there another solution?


Reply With Quote