Add support to the File Credential Resolver for loading multiple apache style cert...
[java-idp.git] / src / schemas / credentials.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- edited with XMLSPY v2004 rel. 2 U (http://www.xmlspy.com) by Walter F Hoehn, Jr (Columbia University in the City of New York) -->
3 <xs:schema targetNamespace="urn:mace:shibboleth:credentials:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:credentials="urn:mace:shibboleth:credentials:1.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
4         <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
5         <xs:element name="Credentials">
6                 <xs:complexType>
7                         <xs:choice maxOccurs="unbounded">
8                                 <xs:element ref="ds:KeyInfo"/>
9                                 <xs:element name="KeyStoreResolver">
10                                         <xs:annotation>
11                                                 <xs:documentation>Pulls credentials from a Java keystore.</xs:documentation>
12                                         </xs:annotation>
13                                         <xs:complexType>
14                                                 <xs:complexContent>
15                                                         <xs:extension base="credentials:BaseCredentialFinder">
16                                                                 <xs:sequence>
17                                                                         <xs:element name="Path" type="xs:string"/>
18                                                                         <xs:element name="KeyAlias" type="xs:string"/>
19                                                                         <xs:element name="CertAlias" type="xs:string" minOccurs="0"/>
20                                                                         <xs:element name="StorePassword" type="xs:string"/>
21                                                                         <xs:element name="KeyPassword" type="xs:string" minOccurs="0"/>
22                                                                 </xs:sequence>
23                                                                 <xs:attribute name="storeType" type="xs:string" use="optional" default="JKS"/>
24                                                         </xs:extension>
25                                                 </xs:complexContent>
26                                         </xs:complexType>
27                                 </xs:element>
28                                 <xs:element name="FileResolver">
29                                         <xs:annotation>
30                                                 <xs:documentation>Pulls credentials from files.</xs:documentation>
31                                         </xs:annotation>
32                                         <xs:complexType>
33                                                 <xs:complexContent>
34                                                         <xs:extension base="credentials:BaseCredentialFinder">
35                                                                 <xs:sequence>
36                                                                         <xs:element name="Certificate">
37                                                                                 <xs:complexType>
38                                                                                         <xs:sequence>
39                                                                                                 <xs:element name="Path" type="xs:string"/>
40                                                                                                 <xs:element name="CAPath" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
41                                                                                         </xs:sequence>
42                                                                                         <xs:attribute name="format" type="xs:string" use="optional" default="PEM"/>
43                                                                                 </xs:complexType>
44                                                                         </xs:element>
45                                                                         <xs:element name="Key">
46                                                                                 <xs:complexType>
47                                                                                         <xs:sequence>
48                                                                                                 <xs:element name="Path" type="xs:string"/>
49                                                                                         </xs:sequence>
50                                                                                         <xs:attribute name="format" type="xs:string" use="optional" default="PEM"/>
51                                                                                         <xs:attribute name="password" type="xs:string" use="optional"/>
52                                                                                 </xs:complexType>
53                                                                         </xs:element>
54                                                                 </xs:sequence>
55                                                         </xs:extension>
56                                                 </xs:complexContent>
57                                         </xs:complexType>
58                                 </xs:element>
59                                 <xs:element name="CustomResolver">
60                                         <xs:annotation>
61                                                 <xs:documentation>Allows for specification of a Java class that loads credentials from a custom storage mechanism. </xs:documentation>
62                                         </xs:annotation>
63                                         <xs:complexType>
64                                                 <xs:complexContent>
65                                                         <xs:extension base="credentials:BaseCredentialFinder">
66                                                                 <xs:sequence>
67                                                                         <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
68                                                                 </xs:sequence>
69                                                                 <xs:attribute name="class" type="xs:string" use="required"/>
70                                                                 <xs:anyAttribute namespace="##any"/>
71                                                         </xs:extension>
72                                                 </xs:complexContent>
73                                         </xs:complexType>
74                                 </xs:element>
75                         </xs:choice>
76                 </xs:complexType>
77         </xs:element>
78         <xs:complexType name="BaseCredentialFinder">
79                 <xs:attribute name="Id" type="xs:string" use="required"/>
80         </xs:complexType>
81 </xs:schema>