[java-metadata-aggregator] branch main updated: MDA-65 - Catch up on unit tests

Ian Young ian at iay.org.uk
Mon Aug 31 14:07:49 UTC 2020


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=299fda2afff19577c57b38152ea29193aa04050c

The following commit(s) were added to refs/heads/main by this push:
       new  299fda2   MDA-65 - Catch up on unit tests
299fda2 is described below

commit 299fda2afff19577c57b38152ea29193aa04050c
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Mon Aug 31 15:07:46 2020 +0100

    MDA-65 - Catch up on unit tests
    
    https://issues.shibboleth.net/jira/browse/MDA-65
---
 .../saml/DiscoFeedCollectionSerializerTest.java    |  48 ++++++++-
 ...iscoFeedCollectionSerializer-no-uiinfo-leg.json |  11 ++
 ...DiscoFeedCollectionSerializer-no-uiinfo-leg.xml | 112 +++++++++++++++++++++
 .../DiscoFeedCollectionSerializer-no-uiinfo.json   |   5 +
 .../DiscoFeedCollectionSerializer-no-uiinfo.xml    | 112 +++++++++++++++++++++
 .../saml/DiscoFeedCollectionSerializer-noidp.xml   | 110 ++++++++++++++++++++
 .../DiscoFeedCollectionSerializer-nonentity.xml    |   4 +
 7 files changed, 401 insertions(+), 1 deletion(-)

diff --git a/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializerTest.java b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializerTest.java
index 503c4b2..62b9e5d 100644
--- a/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializerTest.java
+++ b/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializerTest.java
@@ -46,7 +46,7 @@ public class DiscoFeedCollectionSerializerTest extends BaseDOMTest {
             try (var reader = Json.createReader(in)) {
                 return reader.readArray();
             }
-        }        
+        }
     }
 
     private void checkEntity(@Nonnull final JsonObject entity) {
@@ -214,6 +214,52 @@ public class DiscoFeedCollectionSerializerTest extends BaseDOMTest {
         Assert.assertEquals(attrs.getJsonObject(2).getJsonArray("values").getString(0), "whatever");
     }
 
+    // Test a case where we include only an IdP entity
+    @Test
+    public void testOnlyIdP() throws Exception {
+        final var ser = new DiscoFeedCollectionSerializer();
+        ser.initialize();
+        final String output;
+        try (final var out = new ByteArrayOutputStream()) {
+            ser.serializeCollection(List.of(readDOMItem("noidp.xml")), out);
+            output = out.toString();
+        }
+        Assert.assertEquals(output, "[]");
+    }
+
+    // Test output for a non-entity
+    @Test
+    public void testNonEntity() throws Exception {
+        final var ser = new DiscoFeedCollectionSerializer();
+        ser.initialize();
+        final String output;
+        try (final var out = new ByteArrayOutputStream()) {
+            ser.serializeCollection(List.of(readDOMItem("nonentity.xml")), out);
+            output = out.toString();
+        }
+        Assert.assertEquals(output, "[]");
+    }
+
+    // Test an entity with no UIInfo container
+    @Test
+    public void testNoUIInfo() throws Exception {
+        final var ser = new DiscoFeedCollectionSerializer();
+        ser.initialize();
+        final var entity = checkSingle("no-uiinfo", ser);
+        Assert.assertEquals(entity.keySet().size(), 1); // just the entityID
+        Assert.assertFalse(entity.containsKey("DisplayNames"));
+    }
+
+    // Test an entity with no UIInfo container, with legacy display names
+    @Test
+    public void testNoUIInfoLegacy() throws Exception {
+        final var ser = new DiscoFeedCollectionSerializer();
+        ser.setIncludingLegacyDisplayNames(true);
+        ser.initialize();
+        final var entity = checkSingle("no-uiinfo-leg", ser);
+        Assert.assertTrue(entity.containsKey("DisplayNames"));
+    }
+
     // Test a large aggregate. This test is normally disabled, but it
     // can be brought back to life if necessary to test a new corpus.
     @Test(enabled=false)
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.json b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.json
new file mode 100644
index 0000000..b490bbe
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.json
@@ -0,0 +1,11 @@
+[
+{
+ "entityID": "https://idp.example.com/idp/shibboleth",
+ "DisplayNames": [
+  {
+  "value": "The Example Organization",
+  "lang": "en"
+  }
+ ]
+}
+]
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.xml b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.xml
new file mode 100644
index 0000000..32ef135
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo-leg.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+    xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    entityID="https://idp.example.com/idp/shibboleth">
+    <Extensions>
+        <shibmd:Scope regexp="false">example.com</shibmd:Scope>
+        <mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk"
+            registrationInstant="2007-03-30T16:36:00Z">
+            <mdrpi:RegistrationPolicy xml:lang="en"
+                >http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+        </mdrpi:RegistrationInfo>
+        <mdattr:EntityAttributes xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
+            <saml:Attribute Name="http://macedir.org/entity-category-support"
+                NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+                <saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+            </saml:Attribute>
+        </mdattr:EntityAttributes>
+    </Extensions>
+    <IDPSSODescriptor
+        protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:2.0:protocol">
+        <KeyDescriptor>
+            <ds:KeyInfo>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+                        MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+                        CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+                        8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+                        A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+                        CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+                        DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+                        FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+                        L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+                        QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+                        lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+                        Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+                        hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+                        Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+                        jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+                        HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+                        YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+                        YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
+            Location="https://idp.example.com:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://idp.example.com: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://idp.example.com/idp/profile/Shibboleth/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
+            Location="https://idp.example.com/idp/profile/SAML2/POST/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
+            Location="https://idp.example.com/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
+            Location="https://idp.example.com/idp/profile/SAML2/Redirect/SSO"/>
+    </IDPSSODescriptor>
+    <AttributeAuthorityDescriptor
+        protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+        <KeyDescriptor>
+            <ds:KeyInfo>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+                        MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+                        CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+                        8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+                        A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+                        CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+                        DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+                        FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+                        L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+                        QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+                        lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+                        Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+                        hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+                        Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+                        jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+                        HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+                        YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+                        YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
+            Location="https://idp.example.com:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://idp.example.com:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+    </AttributeAuthorityDescriptor>
+    <Organization>
+        <OrganizationName xml:lang="en">Example Organization</OrganizationName>
+        <OrganizationDisplayName xml:lang="en">The Example Organization</OrganizationDisplayName>
+        <OrganizationURL xml:lang="en">http://example.com/</OrganizationURL>
+    </Organization>
+</EntityDescriptor>
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.json b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.json
new file mode 100644
index 0000000..18a1150
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.json
@@ -0,0 +1,5 @@
+[
+{
+ "entityID": "https://idp.example.com/idp/shibboleth"
+}
+]
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.xml b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.xml
new file mode 100644
index 0000000..32ef135
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-no-uiinfo.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+    xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    entityID="https://idp.example.com/idp/shibboleth">
+    <Extensions>
+        <shibmd:Scope regexp="false">example.com</shibmd:Scope>
+        <mdrpi:RegistrationInfo registrationAuthority="http://ukfederation.org.uk"
+            registrationInstant="2007-03-30T16:36:00Z">
+            <mdrpi:RegistrationPolicy xml:lang="en"
+                >http://ukfederation.org.uk/doc/mdrps-20130902</mdrpi:RegistrationPolicy>
+        </mdrpi:RegistrationInfo>
+        <mdattr:EntityAttributes xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
+            <saml:Attribute Name="http://macedir.org/entity-category-support"
+                NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
+                <saml:AttributeValue>http://refeds.org/category/research-and-scholarship</saml:AttributeValue>
+            </saml:Attribute>
+        </mdattr:EntityAttributes>
+    </Extensions>
+    <IDPSSODescriptor
+        protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:2.0:protocol">
+        <KeyDescriptor>
+            <ds:KeyInfo>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+                        MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+                        CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+                        8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+                        A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+                        CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+                        DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+                        FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+                        L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+                        QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+                        lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+                        Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+                        hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+                        Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+                        jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+                        HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+                        YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+                        YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
+            Location="https://idp.example.com:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="1"/>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://idp.example.com: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://idp.example.com/idp/profile/Shibboleth/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
+            Location="https://idp.example.com/idp/profile/SAML2/POST/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
+            Location="https://idp.example.com/idp/profile/SAML2/POST-SimpleSign/SSO"/>
+        <SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
+            Location="https://idp.example.com/idp/profile/SAML2/Redirect/SSO"/>
+    </IDPSSODescriptor>
+    <AttributeAuthorityDescriptor
+        protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+        <KeyDescriptor>
+            <ds:KeyInfo>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIDSTCCAjGgAwIBAgIhAMSPOSGN+3UUTXSKV+2EBOuF3x/pwPX/TD9GfyEkzLp+
+                        MA0GCSqGSIb3DQEBBQUAMFgxGDAWBgNVBAMMD2lkcDIuaWF5Lm9yZy51azETMBEG
+                        CgmSJomT8ixkARkWA2lheTETMBEGCgmSJomT8ixkARkWA29yZzESMBAGCgmSJomT
+                        8ixkARkWAnVrMB4XDTA4MDIyNTEwMzAxNFoXDTI4MDIyNTEwMzAxNFowWDEYMBYG
+                        A1UEAwwPaWRwMi5pYXkub3JnLnVrMRMwEQYKCZImiZPyLGQBGRYDaWF5MRMwEQYK
+                        CZImiZPyLGQBGRYDb3JnMRIwEAYKCZImiZPyLGQBGRYCdWswggEiMA0GCSqGSIb3
+                        DQEBAQUAA4IBDwAwggEKAoIBAQCb6ts48g10XHTnpy+23huzR184aahkrG0AoeUl
+                        FVlomPjoFDk6czq0S3Qyd+ceF7tMRu3XzS7cMmtVH53O9d+wCs8aPQcPXxHQ5gLk
+                        L7Gu6eJ+3N3jXhpt7/DDPhnzFPNW3EVMueHJ/0IzyspTvq2LPbNWXJ86NKJ+gesZ
+                        QftskwXScOjpoJEIP0EA890QYd4WdYtQPqVV+LPKtnYBoGOnuRhSAM1D/EhCbeb0
+                        lCmRGcdGbDFBchiPO4VLGl85sLa0EhjxMIPAOKXcj8bBlO9Ww9kkG06kQp6eLHwm
+                        Jmt7VNKveCGhyF2QH/CvmdUaPv3gcp1UjrlqFN9LBVSaTIL/AgMBAAEwDQYJKoZI
+                        hvcNAQEFBQADggEBAG+jDBAtlKoHaEBB+l6PpW5zuiDjyHG4zZZYqX77mZ9xP/xe
+                        Kn0yJ18ZLjS3b9WztGLYyC4SJHSF2okq1K02bqsCv9YeP+UWpw2uRR8jt96lLWxZ
+                        jTjoko2v8jBtzDk8LZsqw58m4vZ0AGNZjKeGIywKhxnepwREguyj3bjBpZAGgl0M
+                        HQuXoO/BDC9yKyZslE5CpWp5xP4XzY2/LrorrkwOJLnFuk1sox4/gvkDQukUx/jr
+                        YRbrWfOjcNBx3LE/HI6RNLINicK7yUwerDE86nix5Zc3hskVcCykW+r6HbY6bx7P
+                        YmNKYMZhQAgDtXIjFHOy+WbyVTidmJvxM9UeYCY=
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"
+            Location="https://idp.example.com:8443/idp/profile/SAML1/SOAP/AttributeQuery"/>
+        <AttributeService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://idp.example.com:8443/idp/profile/SAML2/SOAP/AttributeQuery"/>
+        <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>
+        <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
+    </AttributeAuthorityDescriptor>
+    <Organization>
+        <OrganizationName xml:lang="en">Example Organization</OrganizationName>
+        <OrganizationDisplayName xml:lang="en">The Example Organization</OrganizationDisplayName>
+        <OrganizationURL xml:lang="en">http://example.com/</OrganizationURL>
+    </Organization>
+</EntityDescriptor>
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-noidp.xml b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-noidp.xml
new file mode 100644
index 0000000..73ff19b
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-noidp.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+    xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
+    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+    xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+    xmlns:init="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+    xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
+    xmlns:mdrpi="urn:oasis:names:tc:SAML:metadata:rpi"
+    xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
+    xmlns:remd="http://refeds.org/metadata"
+    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
+    xmlns:shibmd="urn:mace:shibboleth:metadata:1.0"
+    xmlns:ukfedlabel="http://ukfederation.org.uk/2006/11/label"
+    entityID="https://sp.example.org/entity">
+    <SPSSODescriptor
+        protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:1.0:protocol urn:oasis:names:tc:SAML:2.0:protocol">
+        <Extensions>
+            <mdui:UIInfo xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
+                <mdui:Logo height="65" width="150">https://auth.edina.ac.uk/public/images/splogos/edina.png</mdui:Logo>
+                <mdui:DisplayName xml:lang="en">EDINA services</mdui:DisplayName>
+                <mdui:Description xml:lang="en">EDINA services for research and education</mdui:Description>
+            </mdui:UIInfo>
+            <init:RequestInitiator Binding="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+                Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/DS"/>
+            <init:RequestInitiator Binding="urn:oasis:names:tc:SAML:profiles:SSO:request-init"
+                Location="https://auth.edina.ac.uk/target/Shibboleth.sso/DS"/>
+            <idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+                Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/DS" index="1"/>
+            <idpdisc:DiscoveryResponse Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
+                Location="https://auth.edina.ac.uk/target/Shibboleth.sso/DS" index="2"/>
+        </Extensions>
+        <KeyDescriptor>
+            <ds:KeyInfo>
+                <ds:X509Data>
+                    <ds:X509Certificate>
+                        MIIESDCCAzCgAwIBAgIJAKrBnZO7TvNTMA0GCSqGSIb3DQEBBQUAMIGkMQswCQYD
+                        VQQGEwJHQjERMA8GA1UECBMIU2NvdGxhbmQxEjAQBgNVBAcTCUVkaW5idXJnaDEk
+                        MCIGA1UEChMbVGhlIFVuaXZlcnNpdHkgb2YgRWRpbmJ1cmdoMQ4wDAYDVQQLEwVF
+                        RElOQTEZMBcGA1UEAxMQdnNwMi5lZGluYS5hYy51azEdMBsGCSqGSIb3DQEJARYO
+                        ZWRpbmFAZWQuYWMudWswHhcNMTAwMjAxMTY0OTI1WhcNMjAwMTMwMTY0OTI1WjCB
+                        pDELMAkGA1UEBhMCR0IxETAPBgNVBAgTCFNjb3RsYW5kMRIwEAYDVQQHEwlFZGlu
+                        YnVyZ2gxJDAiBgNVBAoTG1RoZSBVbml2ZXJzaXR5IG9mIEVkaW5idXJnaDEOMAwG
+                        A1UECxMFRURJTkExGTAXBgNVBAMTEHZzcDIuZWRpbmEuYWMudWsxHTAbBgkqhkiG
+                        9w0BCQEWDmVkaW5hQGVkLmFjLnVrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+                        CgKCAQEAynwMFgT8x37YBNpxAGTtLJxF3iG1adpqRmin40XS86HdJP21dzsH7JD1
+                        RanxUJJOWU8wud9e//ZZTC58TZbc8Zp0JRc5hlTOmLRksYt4B0QxrCqJ4EmFKlIM
+                        igE5ZNgoR+lwS1ENKikIHibnVcNF9IpIkX8sTzCY18JcileM8Yz5b+R91yoha1MU
+                        asRefMf2j7RR6kldAJw2Xj63aFtN0NXL6Z+HiLyg4JNslJTH9c3Ha88tI+6Ce1Q6
+                        rG7rztkpHAD5Rd+ovQMysk9ihA3RN18X0Uu8LqExH2tUqq51Fmd+KQ04hyjE4gx+
+                        w2T6MwPmdp6zLQSXFf6x9CeRai7MwwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCG
+                        SAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4E
+                        FgQU59hHQ8+jwnn2x3Yz4BDaEaDHUrswHwYDVR0jBBgwFoAU59hHQ8+jwnn2x3Yz
+                        4BDaEaDHUrswDQYJKoZIhvcNAQEFBQADggEBAB5CEE4B61l2mn/sBlc7+qN+obOW
+                        gZURJvs/EeIlfR7LpWRITMSn4pE5mPR4R96tL0vNXc1jl5c2sTV9dtztazWmU+Z1
+                        u3rniEM6jETPFqlmYhOPFzYWoQTB0LGv3Id0NR4dCFDtFNl+EPaQAug9C39gkOCN
+                        iLZJlzOZxUALuUvebPbZMfqSTo8SdFT1Cv2No0hQIBjvlO1OimSjAWgkFR3snW8b
+                        xzZ/lWUqrLDZYSo5LXQad3yNfhwi4dMJ5PRuAuTH1akdwlVf4AIeIQDm3QBKJIhj
+                        TOGrFRiCdlp4cIQwN66UelzUH2KjlI/iQXYLbq5uUHN/EI47I/E0gpnYr5E=
+                    </ds:X509Certificate>
+                </ds:X509Data>
+            </ds:KeyInfo>
+        </KeyDescriptor>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/Artifact/SOAP" index="1"/>
+        <ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/Artifact/SOAP" index="2"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML2/Artifact" index="1"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML2/ECP" index="2"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML2/POST" index="3"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML2/POST-SimpleSign" index="4"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML/POST" index="5"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"
+            Location="https://auth.edina.ac.uk/target/Shibboleth.sso/SAML/Artifact" index="6"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML/Artifact" index="7"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML/POST" index="8"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML2/Artifact" index="9"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML2/ECP" index="10"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML2/POST" index="11"/>
+        <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign"
+            Location="https://authdev.edina.ac.uk/target/Shibboleth.sso/SAML2/POST-SimpleSign" index="12"/>
+    </SPSSODescriptor>
+    <Organization>
+        <OrganizationName xml:lang="en">University of Edinburgh</OrganizationName>
+        <OrganizationDisplayName xml:lang="en">EDINA Test Target</OrganizationDisplayName>
+        <OrganizationURL xml:lang="en">http://edina.ac.uk/about/</OrganizationURL>
+    </Organization>
+    <ContactPerson contactType="support">
+        <GivenName>EDINA Helpdesk</GivenName>
+        <EmailAddress>mailto:edina at ed.ac.uk</EmailAddress>
+    </ContactPerson>
+    <ContactPerson contactType="technical">
+        <GivenName>EDINA</GivenName>
+        <EmailAddress>mailto:edina-shibboleth at mlist.is.ed.ac.uk</EmailAddress>
+    </ContactPerson>
+    <ContactPerson contactType="administrative">
+        <GivenName>David</GivenName>
+        <SurName>Elsmore</SurName>
+        <EmailAddress>mailto:david.elsmore at ed.ac.uk</EmailAddress>
+    </ContactPerson>
+</EntityDescriptor>
diff --git a/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-nonentity.xml b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-nonentity.xml
new file mode 100644
index 0000000..f4d0f9a
--- /dev/null
+++ b/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer-nonentity.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<NotAnEntity>
+    <notEvenInTheRightNamespace/>
+</NotAnEntity>

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


More information about the commits mailing list