[java-metadata-aggregator] branch main updated: MDA-280 - Prevent ConstraintViolation at run time with bad data

Ian Young ian at iay.org.uk
Tue Mar 28 14:07:09 UTC 2023


This is an automated email from the git hooks/post-receive script.

iay pushed a commit to branch main
in repository java-metadata-aggregator.

View the commit online:
http://git.shibboleth.net/view/?p=java-metadata-aggregator.git;a=commit;h=44ba0d6deeb5d8c0e191b1a6186dd984f35aa98a

The following commit(s) were added to refs/heads/main by this push:
     new 44ba0d6  MDA-280 - Prevent ConstraintViolation at run time with bad data
44ba0d6 is described below

commit 44ba0d6deeb5d8c0e191b1a6186dd984f35aa98a
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Tue Mar 28 15:06:18 2023 +0100

    MDA-280 - Prevent ConstraintViolation at run time with bad data
    
    https://shibboleth.atlassian.net/browse/MDA-280
---
 .../EntityDescriptorItemIdPopulationStage.java     | 21 +++++-
 .../EntityDescriptorItemIdPopulationStageTest.java | 46 ++++++++++++
 ...tityDescriptorItemIdPopulationStage-emptyID.xml | 83 ++++++++++++++++++++++
 ...yDescriptorItemIdPopulationStage-noEntityID.xml | 83 ++++++++++++++++++++++
 4 files changed, 231 insertions(+), 2 deletions(-)

diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
index 0667a75..735c865 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
@@ -26,11 +26,25 @@ import net.shibboleth.metadata.Item;
 import net.shibboleth.metadata.ItemId;
 import net.shibboleth.metadata.pipeline.AbstractIteratingStage;
 import net.shibboleth.metadata.pipeline.StageProcessingException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.xml.AttributeSupport;
 
 /**
  * A stage which, for each EntityDescriptor collection element, adds an {@link ItemId}, with the entity's entity ID, to
  * the metadata item.
+ * 
+ * <p>Ignores:</p>
+ * <ul>
+ *   <li>Items that don't contain an <code>EntityDescriptor</code></li>
+ *   <li><code>EntityDescriptors</code> lacking an <code>entityID</code></li>
+ *   <li><code>EntityDescriptors</code> with an empty <code>entityID</code></li>
+ * </ul>
+ *
+ * <p>
+ * Most uses of this stage will expect that it will attach an {@link ItemId} to every {@link Item}
+ * in the collection. To ensure that it does so, it may be useful to schema-validate entities
+ * beforehand, and remove malformed entities.
+ * </p>
  */
 @ThreadSafe
 public class EntityDescriptorItemIdPopulationStage extends AbstractIteratingStage<Element> {
@@ -40,8 +54,11 @@ public class EntityDescriptorItemIdPopulationStage extends AbstractIteratingStag
         final Element metadataElement = item.unwrap();
 
         if (SAMLMetadataSupport.isEntityDescriptor(metadataElement)) {
-            final String entityId = AttributeSupport.getAttributeValue(metadataElement, null, "entityID");
-            item.getItemMetadata().put(new ItemId(entityId));
+            final String entityId = StringSupport.trimOrNull(
+            		AttributeSupport.getAttributeValue(metadataElement, null, "entityID"));
+            if (entityId != null) {
+            	item.getItemMetadata().put(new ItemId(entityId));
+            }
         }
     }
 }
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
index d49037c..6480e7f 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
@@ -130,4 +130,50 @@ public class EntityDescriptorItemIdPopulationStageTest extends BaseDOMTest {
             Assert.assertEquals(itemId.getId(), entityDescriptor.getAttributeNS(null, "entityID"));
         }
     }
+
+    /**
+     * Tests running the stage on an <code>EntityDescriptor</code> lacking a <code>entityID</code>.
+     * 
+     * @throws Exception if something bad happens
+     */
+    @Test
+    public void testNoEntityID() throws Exception {
+    	final var item = new DOMElementItem(readXMLData("noEntityID.xml"));
+        final ArrayList<Item<Element>> metadataCollection = new ArrayList<>();
+        metadataCollection.add(item);
+
+        EntityDescriptorItemIdPopulationStage stage = new EntityDescriptorItemIdPopulationStage();
+        stage.setId("test");
+        stage.initialize();
+
+        stage.execute(metadataCollection);
+
+        final var itemIds = item.getItemMetadata().get(ItemId.class);
+        Assert.assertEquals(itemIds.size(), 0);
+        
+        stage.destroy();
+    }
+
+    /**
+     * Tests running the stage on an <code>EntityDescriptor</code> with an empty <code>entityID</code>.
+     * 
+     * @throws Exception if something bad happens
+     */
+    @Test
+    public void testEmptyEntityID() throws Exception {
+    	final var item = new DOMElementItem(readXMLData("emptyID.xml"));
+        final ArrayList<Item<Element>> metadataCollection = new ArrayList<>();
+        metadataCollection.add(item);
+
+        EntityDescriptorItemIdPopulationStage stage = new EntityDescriptorItemIdPopulationStage();
+        stage.setId("test");
+        stage.initialize();
+
+        stage.execute(metadataCollection);
+
+        final var itemIds = item.getItemMetadata().get(ItemId.class);
+        Assert.assertEquals(itemIds.size(), 0);
+        
+        stage.destroy();
+    }
 }
diff --git a/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-emptyID.xml b/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-emptyID.xml
new file mode 100644
index 0000000..600d907
--- /dev/null
+++ b/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-emptyID.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" entityID="">
+    <Extensions>
+        <shibmd:Scope xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" regexp="false">unifr.ch</shibmd:Scope>
+    </Extensions>
+    <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">
+        <KeyDescriptor use="signing">
+            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+                <ds:KeyName>aai.unifr.ch</ds:KeyName>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDGzCCAgOgAwIBAgIUP8Gy5z0CP/joSEYbKGS0Np66XeUwDQYJKoZIhvcNAQEF
+                        BQAwFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMB4XDTA5MDczMDEzNTUyNVoXDTEy
+                        MDczMDEzNTUyNVowFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMIIBIjANBgkqhkiG
+                        9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm8TgEsFh5W6xFbiqKgGj23riyn1TWp03p63z
+                        qM48wLotMWij1hAQlv3hxSTE39qvWMXt3PwOYn9Ck+O2soVIqGonCeq9MNjQUeSD
+                        uZiMUKHq0w/3l/3vbA5KR6dl3x4FaFqv7RaIbO0mu/tH5ScEteuKrNVby9ojQwsI
+                        PcTXbbRJrlFKM+2GTeE1mJhd9PquOS/iKqmIpr6c4r7hKu1nErKG7lFrqTA6exKl
+                        Nb4dUj3Gp+revcwf6UgZJwBxQ858Noy7BAeg5LT7r1dGE68YmrBPYJLj84jeNyIA
+                        /KS5zeeSWZnaHljunjEax9zoSkm3wRgfS6W2ruS/q2DdHxvOzwIDAQABo18wXTA8
+                        BgNVHREENTAzggxhYWkudW5pZnIuY2iGI2h0dHBzOi8vYWFpLnVuaWZyLmNoL2lk
+                        cC9zaGliYm9sZXRoMB0GA1UdDgQWBBT5gNjirVVpDtJqTpZJVpU7jF+LJDANBgkq
+                        hkiG9w0BAQUFAAOCAQEAM/EIJuqE1zWUuUWpbc9uxD1sNv4AQ/wBj7LlAQ4FcJem
+                        cZcycgaE1c4IC+hQGQ9pFjAoQQbJmz2P5btQ8SGpNI+gD45OOIaUa7wgKNJeDGR6
+                        vLWvyof5uNQ2Af9FpM0l23prY3phkGxtqSKvigOFIJEEuMOTrUikxFtrRdEQ6qDk
+                        y4RKFDZ92qV076YLeCI6GX+IMrSKE8GQKxvq32IEw/LlvjC21IJSeTwU9hPQsCLL
+                        06PCqiwBffRqZguTXXOWk0n/Btri44echadREWrOem6cwJuHs6nvQ/iHSjjmHVSs
+                        V29q22MI4G0dXLKIBkHsMyrEdS06vIvIbXuILzV6lQ==
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://aai.unifr.ch:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://aai.unifr.ch:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="2"/>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+        <SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://aai.unifr.ch/idp/profile/Shibboleth/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://aai.unifr.ch/idp/profile/SAML2/Redirect/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://aai.unifr.ch/idp/profile/SAML2/POST/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://aai.unifr.ch/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+    </IDPSSODescriptor>
+    <AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
+        <KeyDescriptor use="signing">
+            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+                <ds:KeyName>aai.unifr.ch</ds:KeyName>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDGzCCAgOgAwIBAgIUP8Gy5z0CP/joSEYbKGS0Np66XeUwDQYJKoZIhvcNAQEF
+                        BQAwFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMB4XDTA5MDczMDEzNTUyNVoXDTEy
+                        MDczMDEzNTUyNVowFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMIIBIjANBgkqhkiG
+                        9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm8TgEsFh5W6xFbiqKgGj23riyn1TWp03p63z
+                        qM48wLotMWij1hAQlv3hxSTE39qvWMXt3PwOYn9Ck+O2soVIqGonCeq9MNjQUeSD
+                        uZiMUKHq0w/3l/3vbA5KR6dl3x4FaFqv7RaIbO0mu/tH5ScEteuKrNVby9ojQwsI
+                        PcTXbbRJrlFKM+2GTeE1mJhd9PquOS/iKqmIpr6c4r7hKu1nErKG7lFrqTA6exKl
+                        Nb4dUj3Gp+revcwf6UgZJwBxQ858Noy7BAeg5LT7r1dGE68YmrBPYJLj84jeNyIA
+                        /KS5zeeSWZnaHljunjEax9zoSkm3wRgfS6W2ruS/q2DdHxvOzwIDAQABo18wXTA8
+                        BgNVHREENTAzggxhYWkudW5pZnIuY2iGI2h0dHBzOi8vYWFpLnVuaWZyLmNoL2lk
+                        cC9zaGliYm9sZXRoMB0GA1UdDgQWBBT5gNjirVVpDtJqTpZJVpU7jF+LJDANBgkq
+                        hkiG9w0BAQUFAAOCAQEAM/EIJuqE1zWUuUWpbc9uxD1sNv4AQ/wBj7LlAQ4FcJem
+                        cZcycgaE1c4IC+hQGQ9pFjAoQQbJmz2P5btQ8SGpNI+gD45OOIaUa7wgKNJeDGR6
+                        vLWvyof5uNQ2Af9FpM0l23prY3phkGxtqSKvigOFIJEEuMOTrUikxFtrRdEQ6qDk
+                        y4RKFDZ92qV076YLeCI6GX+IMrSKE8GQKxvq32IEw/LlvjC21IJSeTwU9hPQsCLL
+                        06PCqiwBffRqZguTXXOWk0n/Btri44echadREWrOem6cwJuHs6nvQ/iHSjjmHVSs
+                        V29q22MI4G0dXLKIBkHsMyrEdS06vIvIbXuILzV6lQ==
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://aai.unifr.ch:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://aai.unifr.ch:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+    </AttributeAuthorityDescriptor>
+    <Organization>
+        <OrganizationName xml:lang="en">unifr.ch</OrganizationName>
+        <OrganizationDisplayName xml:lang="de">Université de Fribourg - Universität
+            Freiburg</OrganizationDisplayName>
+        <OrganizationDisplayName xml:lang="en">University of Fribourg</OrganizationDisplayName>
+        <OrganizationDisplayName xml:lang="fr">Université de Fribourg - Universität
+            Freiburg</OrganizationDisplayName>
+        <OrganizationURL xml:lang="fr">http://www.unifr.ch/aai</OrganizationURL>
+    </Organization>
+</EntityDescriptor>
diff --git a/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-noEntityID.xml b/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-noEntityID.xml
new file mode 100644
index 0000000..cc71997
--- /dev/null
+++ b/mda-framework/src/test/resources/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage-noEntityID.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <Extensions>
+        <shibmd:Scope xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" regexp="false">unifr.ch</shibmd:Scope>
+    </Extensions>
+    <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">
+        <KeyDescriptor use="signing">
+            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+                <ds:KeyName>aai.unifr.ch</ds:KeyName>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDGzCCAgOgAwIBAgIUP8Gy5z0CP/joSEYbKGS0Np66XeUwDQYJKoZIhvcNAQEF
+                        BQAwFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMB4XDTA5MDczMDEzNTUyNVoXDTEy
+                        MDczMDEzNTUyNVowFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMIIBIjANBgkqhkiG
+                        9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm8TgEsFh5W6xFbiqKgGj23riyn1TWp03p63z
+                        qM48wLotMWij1hAQlv3hxSTE39qvWMXt3PwOYn9Ck+O2soVIqGonCeq9MNjQUeSD
+                        uZiMUKHq0w/3l/3vbA5KR6dl3x4FaFqv7RaIbO0mu/tH5ScEteuKrNVby9ojQwsI
+                        PcTXbbRJrlFKM+2GTeE1mJhd9PquOS/iKqmIpr6c4r7hKu1nErKG7lFrqTA6exKl
+                        Nb4dUj3Gp+revcwf6UgZJwBxQ858Noy7BAeg5LT7r1dGE68YmrBPYJLj84jeNyIA
+                        /KS5zeeSWZnaHljunjEax9zoSkm3wRgfS6W2ruS/q2DdHxvOzwIDAQABo18wXTA8
+                        BgNVHREENTAzggxhYWkudW5pZnIuY2iGI2h0dHBzOi8vYWFpLnVuaWZyLmNoL2lk
+                        cC9zaGliYm9sZXRoMB0GA1UdDgQWBBT5gNjirVVpDtJqTpZJVpU7jF+LJDANBgkq
+                        hkiG9w0BAQUFAAOCAQEAM/EIJuqE1zWUuUWpbc9uxD1sNv4AQ/wBj7LlAQ4FcJem
+                        cZcycgaE1c4IC+hQGQ9pFjAoQQbJmz2P5btQ8SGpNI+gD45OOIaUa7wgKNJeDGR6
+                        vLWvyof5uNQ2Af9FpM0l23prY3phkGxtqSKvigOFIJEEuMOTrUikxFtrRdEQ6qDk
+                        y4RKFDZ92qV076YLeCI6GX+IMrSKE8GQKxvq32IEw/LlvjC21IJSeTwU9hPQsCLL
+                        06PCqiwBffRqZguTXXOWk0n/Btri44echadREWrOem6cwJuHs6nvQ/iHSjjmHVSs
+                        V29q22MI4G0dXLKIBkHsMyrEdS06vIvIbXuILzV6lQ==
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://aai.unifr.ch:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://aai.unifr.ch:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="2"/>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+        <SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://aai.unifr.ch/idp/profile/Shibboleth/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://aai.unifr.ch/idp/profile/SAML2/Redirect/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://aai.unifr.ch/idp/profile/SAML2/POST/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign" Location="https://aai.unifr.ch/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+    </IDPSSODescriptor>
+    <AttributeAuthorityDescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol urn:oasis:names:tc:SAML:1.1:protocol">
+        <KeyDescriptor use="signing">
+            <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+                <ds:KeyName>aai.unifr.ch</ds:KeyName>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDGzCCAgOgAwIBAgIUP8Gy5z0CP/joSEYbKGS0Np66XeUwDQYJKoZIhvcNAQEF
+                        BQAwFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMB4XDTA5MDczMDEzNTUyNVoXDTEy
+                        MDczMDEzNTUyNVowFzEVMBMGA1UEAxMMYWFpLnVuaWZyLmNoMIIBIjANBgkqhkiG
+                        9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm8TgEsFh5W6xFbiqKgGj23riyn1TWp03p63z
+                        qM48wLotMWij1hAQlv3hxSTE39qvWMXt3PwOYn9Ck+O2soVIqGonCeq9MNjQUeSD
+                        uZiMUKHq0w/3l/3vbA5KR6dl3x4FaFqv7RaIbO0mu/tH5ScEteuKrNVby9ojQwsI
+                        PcTXbbRJrlFKM+2GTeE1mJhd9PquOS/iKqmIpr6c4r7hKu1nErKG7lFrqTA6exKl
+                        Nb4dUj3Gp+revcwf6UgZJwBxQ858Noy7BAeg5LT7r1dGE68YmrBPYJLj84jeNyIA
+                        /KS5zeeSWZnaHljunjEax9zoSkm3wRgfS6W2ruS/q2DdHxvOzwIDAQABo18wXTA8
+                        BgNVHREENTAzggxhYWkudW5pZnIuY2iGI2h0dHBzOi8vYWFpLnVuaWZyLmNoL2lk
+                        cC9zaGliYm9sZXRoMB0GA1UdDgQWBBT5gNjirVVpDtJqTpZJVpU7jF+LJDANBgkq
+                        hkiG9w0BAQUFAAOCAQEAM/EIJuqE1zWUuUWpbc9uxD1sNv4AQ/wBj7LlAQ4FcJem
+                        cZcycgaE1c4IC+hQGQ9pFjAoQQbJmz2P5btQ8SGpNI+gD45OOIaUa7wgKNJeDGR6
+                        vLWvyof5uNQ2Af9FpM0l23prY3phkGxtqSKvigOFIJEEuMOTrUikxFtrRdEQ6qDk
+                        y4RKFDZ92qV076YLeCI6GX+IMrSKE8GQKxvq32IEw/LlvjC21IJSeTwU9hPQsCLL
+                        06PCqiwBffRqZguTXXOWk0n/Btri44echadREWrOem6cwJuHs6nvQ/iHSjjmHVSs
+                        V29q22MI4G0dXLKIBkHsMyrEdS06vIvIbXuILzV6lQ==
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://aai.unifr.ch:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://aai.unifr.ch:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+    </AttributeAuthorityDescriptor>
+    <Organization>
+        <OrganizationName xml:lang="en">unifr.ch</OrganizationName>
+        <OrganizationDisplayName xml:lang="de">Université de Fribourg - Universität
+            Freiburg</OrganizationDisplayName>
+        <OrganizationDisplayName xml:lang="en">University of Fribourg</OrganizationDisplayName>
+        <OrganizationDisplayName xml:lang="fr">Université de Fribourg - Universität
+            Freiburg</OrganizationDisplayName>
+        <OrganizationURL xml:lang="fr">http://www.unifr.ch/aai</OrganizationURL>
+    </Organization>
+</EntityDescriptor>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list