diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java index 48f0470e6..f3a1866e1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java @@ -99,7 +99,7 @@ public List getKeyInfoReferences() { @Nonnull @Override public List getX509Datas() { - return Arrays.asList(this.xmlObjects.stream().filter(i -> i instanceof X509Data).toArray(X509Data[]::new)); + return new X509ArrayList(this, Arrays.asList(this.xmlObjects.stream().filter(i -> i instanceof X509Data).toArray(X509Data[]::new))); } public void addX509Data(edu.internet2.tier.shibboleth.admin.ui.domain.X509Data x509Data) { @@ -155,4 +155,19 @@ public List getOrderedChildren() { return children; } +} + +class X509ArrayList extends ArrayList { + private KeyInfo parentRef; + + public X509ArrayList(KeyInfo ref, List addlist) { + super(addlist); + this.parentRef = ref; + } + + @Override + public boolean add(X509Data data) { + parentRef.addX509Data((edu.internet2.tier.shibboleth.admin.ui.domain.X509Data) data); + return super.add(data); + } } \ No newline at end of file diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java index 1b67a7f2e..c61bb5ee6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java @@ -68,7 +68,7 @@ public List getX509SubjectNames() { @Nonnull @Override public List getX509Certificates() { - return new ArrayList<>(Arrays.asList(this.xmlObjects.stream().filter(i -> i instanceof org.opensaml.xmlsec.signature.X509Certificate).toArray(org.opensaml.xmlsec.signature.X509Certificate[]::new))); + return new X509CertificateArrayList(xmlObjects, Arrays.asList(this.xmlObjects.stream().filter(i -> i instanceof org.opensaml.xmlsec.signature.X509Certificate).toArray(org.opensaml.xmlsec.signature.X509Certificate[]::new))); } public void addX509Certificate(edu.internet2.tier.shibboleth.admin.ui.domain.X509Certificate x509Certificate) { @@ -97,4 +97,18 @@ public List getOrderedChildren() { return children; } +} + +class X509CertificateArrayList extends ArrayList { + private final List xmlObjects; + + public X509CertificateArrayList(List xmlObjects, List addList) { + super(addList); + this.xmlObjects = xmlObjects; + } + + @Override + public boolean add(X509Certificate x509Certificate) { + return super.add(x509Certificate) && xmlObjects.add((AbstractXMLObject) x509Certificate); + } } \ No newline at end of file diff --git a/testbed/authentication/shibui/sp-metadata.xml b/testbed/authentication/shibui/sp-metadata.xml deleted file mode 100644 index 8e69e2ef3..000000000 --- a/testbed/authentication/shibui/sp-metadata.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - urn:oasis:names:tc:SAML:2.0:nameid-format:transient - urn:oasis:names:tc:SAML:2.0:nameid-format:persistent - urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified - - -