From d0a11451efea2ce31cb61bb88be8c2b78a019fac Mon Sep 17 00:00:00 2001 From: chasegawa Date: Fri, 14 Apr 2023 14:09:59 -0700 Subject: [PATCH 1/3] SHIBUI-2567: Fixes to work with OpenSaml when generating SP metadata via Pac4J (commit 1) --- .../shibboleth/admin/ui/domain/KeyInfo.java | 17 ++++++++- .../shibboleth/admin/ui/domain/X509Data.java | 16 ++++++++- testbed/authentication/shibui/sp-metadata.xml | 36 ------------------- 3 files changed, 31 insertions(+), 38 deletions(-) delete mode 100644 testbed/authentication/shibui/sp-metadata.xml 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 - - - From 5d5c84cb9ccf1176e5317f76b1d7ac2b046b1722 Mon Sep 17 00:00:00 2001 From: chasegawa Date: Fri, 14 Apr 2023 14:18:58 -0700 Subject: [PATCH 2/3] SHIBUI-2567: Fixes to work with OpenSaml when generating SP metadata via Pac4J (commit 2) --- testbed/authentication/shibui/sp-metadata.xml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 testbed/authentication/shibui/sp-metadata.xml diff --git a/testbed/authentication/shibui/sp-metadata.xml b/testbed/authentication/shibui/sp-metadata.xml new file mode 100644 index 000000000..3a0ccf126 --- /dev/null +++ b/testbed/authentication/shibui/sp-metadata.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +HhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYd +j7yG+PN0qKE3B+ye+vj9iiLLJBfeCqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wd +bN+QNj0VxE8E2JuBCMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2x +NhUzHtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1eOk6tz3Gq +Q62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TEIMz8qeCgBinEhr6fj1rI +aOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMgegJgyooagqTL7UUp3ZVSrYEEpTCR1l7Jg +mdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkMhgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjM +J00ibtDMYqQfQ2F9bddI58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQ +O6wXcioZVMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f9pwd +6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOpZhiDnL3iAjiYgPQ= + + + + + + + MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +HhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYd +j7yG+PN0qKE3B+ye+vj9iiLLJBfeCqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wd +bN+QNj0VxE8E2JuBCMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2x +NhUzHtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1eOk6tz3Gq +Q62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TEIMz8qeCgBinEhr6fj1rI +aOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMgegJgyooagqTL7UUp3ZVSrYEEpTCR1l7Jg +mdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkMhgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjM +J00ibtDMYqQfQ2F9bddI58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQ +O6wXcioZVMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f9pwd +6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOpZhiDnL3iAjiYgPQ= + + + + + + + + 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 + + + From be27aee2beb39c8b529b2c21f832a6ba259be399 Mon Sep 17 00:00:00 2001 From: Chad Redman Date: Sun, 23 Apr 2023 17:05:01 -0400 Subject: [PATCH 3/3] SHIBUI-2567: Fixes to work with OpenSaml when generating SP metadata via Pac4J (commit 3) --- ...0bfe6fa4495100f5c193fa5b7ca4192c150923.xml | 107 +++++++++--------- 1 file changed, 53 insertions(+), 54 deletions(-) diff --git a/testbed/authentication/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml b/testbed/authentication/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml index 816c9d1ed..3a0ccf126 100644 --- a/testbed/authentication/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml +++ b/testbed/authentication/shibboleth-idp/metadata/dynamic/700bfe6fa4495100f5c193fa5b7ca4192c150923.xml @@ -1,71 +1,70 @@ - + - - + + + + + + + + + + + + + - + - - - - - - + - - - - MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1 - YTU5NjdjMjEwHhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYD - VQQDDAwzODM1YTU5NjdjMjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB - AQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYdj7yG+PN0qKE3B+ye+vj9iiLLJBfe - CqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wdbN+QNj0VxE8E2JuB - CMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2xNhUz - HtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1e - Ok6tz3GqQ62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TE - IMz8qeCgBinEhr6fj1rIaOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMge - gJgyooagqTL7UUp3ZVSrYEEpTCR1l7JgmdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkM - hgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjMJ00ibtDMYqQfQ2F9bddI - 58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQO6wXcioZ - VMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f - 9pwd6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOp - ZhiDnL3iAjiYgPQ= - - - + + + MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +HhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYd +j7yG+PN0qKE3B+ye+vj9iiLLJBfeCqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wd +bN+QNj0VxE8E2JuBCMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2x +NhUzHtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1eOk6tz3Gq +Q62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TEIMz8qeCgBinEhr6fj1rI +aOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMgegJgyooagqTL7UUp3ZVSrYEEpTCR1l7Jg +mdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkMhgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjM +J00ibtDMYqQfQ2F9bddI58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQ +O6wXcioZVMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f9pwd +6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOpZhiDnL3iAjiYgPQ= + + - - - - MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1 - YTU5NjdjMjEwHhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYD - VQQDDAwzODM1YTU5NjdjMjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB - AQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYdj7yG+PN0qKE3B+ye+vj9iiLLJBfe - CqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wdbN+QNj0VxE8E2JuB - CMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2xNhUz - HtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1e - Ok6tz3GqQ62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TE - IMz8qeCgBinEhr6fj1rIaOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMge - gJgyooagqTL7UUp3ZVSrYEEpTCR1l7JgmdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkM - hgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjMJ00ibtDMYqQfQ2F9bddI - 58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQO6wXcioZ - VMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f - 9pwd6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOp - ZhiDnL3iAjiYgPQ= - - - + + + MIICpzCCAY+gAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +HhcNMjMwNDEwMTg0MTM5WhcNNDMwNDEwMTg0MTM5WjAXMRUwEwYDVQQDDAwzODM1YTU5NjdjMjEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWxxf38Fa4VLYUPRn9Lb+Fvyy7wlrOtYd +j7yG+PN0qKE3B+ye+vj9iiLLJBfeCqJMzjivJcWjz6PYp9XDHJl3m3BchiGakwCnQahWps2qo9wd +bN+QNj0VxE8E2JuBCMRIL+qUpwbn81QLTwZDk/9W8tAJzZ9n1m9uo/uuFjObGUMJ8r4KjX8IeX2x +NhUzHtIjmHKR5gUKflKkkpwNa/AvPX7O1a4ML92bBGmtOe3DoOgzILUIP4klWDJFoA1eOk6tz3Gq +Q62JXHKHWJh5+r6olvZyfQ2TynfODoCHYVi99TDV7QZMY9HBLATVI2TEIMz8qeCgBinEhr6fj1rI +aOmHAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAHL4bMgegJgyooagqTL7UUp3ZVSrYEEpTCR1l7Jg +mdvunGk8qxNVqu0Ir5HGJhy6/MiSkVkMhgpBKC+yeV7hFbVEdMEABMs7Ge+uMtsDQs1wa9uT+FjM +J00ibtDMYqQfQ2F9bddI58VbYmxpxKsflaZGo6gKWwllreFXzfxAdOCAMwbLyZS/plX+pXEAXTNQ +O6wXcioZVMsjAf1gmmTeSccTNWscaloYcRyND3slGaKShWOwm7AupA+7KwHj9PqSnj4kXR1f9pwd +6uZ9jhCb/fh2Xna2Blq+1H1juKKxYCESgA+6xb70EwCqAx71pnHChkTIDNOpZhiDnL3iAjiYgPQ= + + - + + + + 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 - \ No newline at end of file +