--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema targetNamespace="urn:mace:shibboleth:namemapper:1.0" xmlns:namemapper="urn:mace:shibboleth:namemapper:1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="NameMapping" type="namemapper:NameMappingType"/>
+ <xs:complexType name="NameMappingType">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="format" type="xs:anyURI" use="required"/>
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ <xs:attribute name="class" type="xs:string" use="optional"/>
+ <xs:attribute name="type" type="xs:string" use="optional"/>
+ <xs:anyAttribute namespace="##any" processContents="lax"/>
+ </xs:complexType>
+</xs:schema>
try {
//TODO turn on validation
- parser.setFeature("http://xml.org/sax/features/validation", false);
- parser.setFeature("http://apache.org/xml/features/validation/schema", false);
+ parser.setFeature("http://xml.org/sax/features/validation", true);
+ parser.setFeature("http://apache.org/xml/features/validation/schema", true);
parser.setEntityResolver(new EntityResolver() {
public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
- if (systemId.endsWith("shibboleth-arp-1.0.xsd")) {
+ if (systemId.endsWith("namemapper.xsd")) {
InputStream stream;
try {
- stream = new FileInputStream("src/schemas/shibboleth-arp-1.0.xsd");
+ stream = new FileInputStream("src/schemas/namemapper.xsd");
if (stream != null) {
return new InputSource(stream);
}
String rawConfig =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<NameMapping id=\"cryptotest\" format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
- + " type=\"CryptoHandleGenerator\" handleTTL=\"1800\">"
+ + "<NameMapping xmlns=\"urn:mace:shibboleth:namemapper:1.0\""
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xsi:schemaLocation=\"urn:mace:shibboleth:namemapper:1.0 namemapper.xsd\" "
+ + " id=\"cryptotest\" format=\"urn:mace:shibboleth:1.0:nameIdentifier\" "
+ + " type=\"CryptoHandleGenerator\" handleTTL=\"1800\">"
+ " <KeyStorePath>"
+ file.toURL().toString()
+ "</KeyStorePath>"
String rawConfig =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<NameMapping format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ + "<NameMapping xmlns=\"urn:mace:shibboleth:namemapper:1.0\""
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xsi:schemaLocation=\"urn:mace:shibboleth:namemapper:1.0 namemapper.xsd\" "
+ + " format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ " type=\"CryptoHandleGenerator\" handleTTL=\"1800\">"
+ " <KeyStorePath>"
+ file.toURL().toString()
String rawConfig =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<NameMapping format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ + "<NameMapping xmlns=\"urn:mace:shibboleth:namemapper:1.0\""
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xsi:schemaLocation=\"urn:mace:shibboleth:namemapper:1.0 namemapper.xsd\" "
+ + " format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ " type=\"CryptoHandleGenerator\" handleTTL=\"1800\">"
+ " <KeyStorePath>"
+ file.toURL().toString()
String rawConfig =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<NameMapping id=\"memorytest\" format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ + "<NameMapping xmlns=\"urn:mace:shibboleth:namemapper:1.0\""
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xsi:schemaLocation=\"urn:mace:shibboleth:namemapper:1.0 namemapper.xsd\" "
+ + " id=\"memorytest\" "
+ + " format=\"urn:mace:shibboleth:1.0:nameIdentifier\""
+ " type=\"SharedMemoryShibHandle\" handleTTL=\"1800\"/>";
parser.parse(new InputSource(new StringReader(rawConfig)));
String format = "urn-x:test:NameIdFormat1";
String rawConfig =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<NameMapping format=\""
+ + "<NameMapping xmlns=\"urn:mace:shibboleth:namemapper:1.0\""
+ + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ + " xsi:schemaLocation=\"urn:mace:shibboleth:namemapper:1.0 namemapper.xsd\" "
+ + " format=\""
+ format
+ "\""
+ " type=\"Principal\"/>";