80175be950c35a5ae0ff111dd580c05cea8431d9
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / serviceprovider / XMLMetadataImpl.java
1 /*
2  * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 /*
18  * 
19  * Process Shibboleth 1.2 Metadata and present an EntityDescriptor
20  * interface.
21  * 
22  */
23 package edu.internet2.middleware.shibboleth.serviceprovider;
24
25 import org.apache.xmlbeans.XmlException;
26 import org.opensaml.SAMLException;
27 import org.opensaml.artifact.Artifact;
28 import org.w3c.dom.Document;
29 import org.w3c.dom.Element;
30 import org.w3c.dom.Node;
31
32 import edu.internet2.middleware.shibboleth.common.ShibbolethConfigurationException;
33 import edu.internet2.middleware.shibboleth.metadata.EntityDescriptor;
34 import edu.internet2.middleware.shibboleth.metadata.Metadata;
35 import edu.internet2.middleware.shibboleth.metadata.provider.XMLMetadataProvider;
36
37
38 /**
39  * Shibboleth 1.2 XML Metadata support
40  * 
41  * TODO: This needs to be ripped out, but for now, I'll try and
42  * just wrap the real metadata plugin with this thing.
43  */
44 class XMLMetadataImpl 
45         implements 
46                 Metadata,
47                 PluggableConfigurationComponent
48         {
49     
50     
51         XMLMetadataProvider realObject = null;
52         
53
54         public void initialize(Node dom) 
55                 throws XmlException, ShibbolethConfigurationException {
56             try {
57             // Assuming this just gets a DOM tree containing the metadata,
58             // hopefully this will "just work".
59             realObject =
60                 new edu.internet2.middleware.shibboleth.metadata.provider.XMLMetadataProvider(
61                         (dom instanceof Element) ? (Element)dom : ((dom instanceof Document) ? ((Document)dom).getDocumentElement() : null)
62                     );
63         }
64         catch (SAMLException e) {
65             throw new ShibbolethConfigurationException("Exception initializing metadata: " + e);
66         }
67         }
68         
69     public String getSchemaPathname() {
70         return null;
71     }
72
73     public EntityDescriptor lookup(String id) {
74         return realObject.lookup(id);
75     }
76
77     public EntityDescriptor lookup(Artifact artifact) {
78         return realObject.lookup(artifact);
79     }
80 }