Validate Signatures
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / serviceprovider / XMLMetadataImpl.java
1 /*
2  * XMLMetadataImpl.java
3  * 
4  * Process Shibboleth 1.2 Metadata and present an EntityDescriptor
5  * interface.
6  * 
7  * --------------------
8  * Copyright 2002, 2004 
9  * University Corporation for Advanced Internet Development, Inc. 
10  * All rights reserved
11  * [Thats all we have to say to protect ourselves]
12  * Your permission to use this code is governed by "The Shibboleth License".
13  * A copy may be found at http://shibboleth.internet2.edu/license.html
14  * [Nothing in copyright law requires license text in every file.]
15   */
16 package edu.internet2.middleware.shibboleth.serviceprovider;
17
18 import org.apache.log4j.Logger;
19 import org.apache.xmlbeans.XmlException;
20 import org.opensaml.SAMLException;
21 import org.opensaml.artifact.Artifact;
22 import org.w3c.dom.Document;
23 import org.w3c.dom.Element;
24 import org.w3c.dom.Node;
25
26 import edu.internet2.middleware.shibboleth.common.ShibbolethConfigurationException;
27 import edu.internet2.middleware.shibboleth.metadata.EntityDescriptor;
28 import edu.internet2.middleware.shibboleth.metadata.Metadata;
29 import edu.internet2.middleware.shibboleth.metadata.provider.XMLMetadataProvider;
30
31
32 /**
33  * Shibboleth 1.2 XML Metadata support
34  * 
35  * TODO: This needs to be ripped out, but for now, I'll try and
36  * just wrap the real metadata plugin with this thing.
37  */
38 class XMLMetadataImpl 
39         implements 
40                 Metadata,
41                 PluggableConfigurationComponent
42         {
43     
44     private static Logger log = Logger.getLogger(XMLMetadataImpl.class);
45     
46         XMLMetadataProvider realObject = null;
47         
48
49         public void initialize(Node dom) 
50                 throws XmlException, ShibbolethConfigurationException {
51             try {
52             // Assuming this just gets a DOM tree containing the metadata,
53             // hopefully this will "just work".
54             realObject =
55                 new edu.internet2.middleware.shibboleth.metadata.provider.XMLMetadataProvider(
56                         (dom instanceof Element) ? (Element)dom : ((dom instanceof Document) ? ((Document)dom).getDocumentElement() : null)
57                     );
58         }
59         catch (SAMLException e) {
60             throw new ShibbolethConfigurationException("Exception initializing metadata: " + e);
61         }
62         }
63         
64     public String getSchemaPathname() {
65         return null;
66     }
67
68     public EntityDescriptor lookup(String id) {
69         return realObject.lookup(id);
70     }
71
72     public EntityDescriptor lookup(Artifact artifact) {
73         return realObject.lookup(artifact);
74     }
75 }