aboutsummaryrefslogtreecommitdiff
path: root/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-06-18 11:38:39 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2013-06-18 11:38:39 +0200
commit7e76287e8a443140d15483d2ce475f259e8215a9 (patch)
tree2cb1b174081cc65da693b13bb8175c7ee7aa468a /id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
parent2f0511d495a107b3a48b378084f0bbc74d7d5fb7 (diff)
downloadmoa-id-spss-7e76287e8a443140d15483d2ce475f259e8215a9.tar.gz
moa-id-spss-7e76287e8a443140d15483d2ce475f259e8215a9.tar.bz2
moa-id-spss-7e76287e8a443140d15483d2ce475f259e8215a9.zip
Fixed issue with multiple metadata files. (Issue #5)
Diffstat (limited to 'id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java')
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java28
1 files changed, 20 insertions, 8 deletions
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
index 71de16a97..b38b862ef 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
@@ -1,6 +1,7 @@
package at.gv.egovernment.moa.id.protocols.pvp2x.metadata;
import java.io.File;
+import java.util.Iterator;
import java.util.List;
import javax.xml.namespace.QName;
@@ -8,6 +9,7 @@ import javax.xml.namespace.QName;
import org.opensaml.saml2.metadata.EntitiesDescriptor;
import org.opensaml.saml2.metadata.EntityDescriptor;
import org.opensaml.saml2.metadata.RoleDescriptor;
+import org.opensaml.saml2.metadata.provider.ChainingMetadataProvider;
import org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider;
import org.opensaml.saml2.metadata.provider.MetadataFilter;
import org.opensaml.saml2.metadata.provider.MetadataProvider;
@@ -17,20 +19,30 @@ import org.opensaml.xml.parse.BasicParserPool;
import at.gv.egovernment.moa.id.protocols.pvp2x.config.PVPConfiguration;
import at.gv.egovernment.moa.id.protocols.pvp2x.verification.MetadataSignatureFilter;
+import at.gv.egovernment.moa.logging.Logger;
public class MOAMetadataProvider implements MetadataProvider {
MetadataProvider internalProvider;
public MOAMetadataProvider() throws MetadataProviderException {
- FilesystemMetadataProvider fsProvider = new FilesystemMetadataProvider(
- new File(PVPConfiguration.getInstance().getMetadataFile()));
- fsProvider.setParserPool(new BasicParserPool());
- internalProvider = fsProvider;
- internalProvider.setRequireValidMetadata(true);
- MetadataFilter filter = new MetadataSignatureFilter();
- internalProvider.setMetadataFilter(filter);
- fsProvider.initialize();
+ ChainingMetadataProvider chainProvider = new ChainingMetadataProvider();
+ Logger.info("Loading metadata");
+ List<String> files = PVPConfiguration.getInstance().getMetadataFiles();
+ Iterator<String> fileIt = files.iterator();
+ while (fileIt.hasNext()) {
+ String file = fileIt.next();
+ Logger.info("Loading metadata file: " + file);
+ FilesystemMetadataProvider fsProvider = new FilesystemMetadataProvider(
+ new File(file));
+ fsProvider.setParserPool(new BasicParserPool());
+ fsProvider.setRequireValidMetadata(true);
+ MetadataFilter filter = new MetadataSignatureFilter();
+ fsProvider.setMetadataFilter(filter);
+ chainProvider.addMetadataProvider(fsProvider);
+ fsProvider.initialize();
+ }
+ internalProvider = chainProvider;
}
public boolean requireValidMetadata() {