diff --git a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy
index e31620d18..e8c074930 100644
--- a/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy
+++ b/backend/src/main/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImpl.groovy
@@ -105,11 +105,6 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService {
'xsi:type': 'RequiredValidUntil',
'maxValidityInterval': 'P14D'
)
- MetadataFilter(
- 'xsi:type': 'EntityRoleWhiteList'
- ) {
- RetainedRole('md:SPSSODescriptor')
- }
//TODO: enhance
mr.metadataFilters.each { edu.internet2.tier.shibboleth.admin.ui.domain.filters.MetadataFilter filter ->
constructFilterXmlNode(filter, delegate)
diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy
index a9e5aa638..bc32cc580 100644
--- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy
+++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/IncommonJPAMetadataResolverServiceImplTests.groovy
@@ -6,6 +6,7 @@ import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFil
import edu.internet2.tier.shibboleth.admin.ui.domain.filters.EntityAttributesFilterTarget
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository
+import edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers
import edu.internet2.tier.shibboleth.admin.util.AttributeUtility
import org.opensaml.saml.metadata.resolver.ChainingMetadataResolver
import org.opensaml.saml.metadata.resolver.MetadataResolver
@@ -22,6 +23,8 @@ import org.xmlunit.builder.DiffBuilder
import org.xmlunit.builder.Input
import spock.lang.Specification
+import static edu.internet2.tier.shibboleth.admin.ui.util.TestHelpers.*
+
@SpringBootTest
@DataJpaTest
@ContextConfiguration(classes = [CoreShibUiConfiguration, SearchConfiguration])
@@ -43,7 +46,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification {
def output = metadataResolverService.generateConfiguration()
then:
- assert !DiffBuilder.compare(Input.fromStream(this.class.getResourceAsStream('/conf/278.xml'))).withTest(Input.fromDocument(output)).ignoreComments().ignoreWhitespace().build().hasDifferences()
+ assert generatedXmlTheSameAsExpectedXml('/conf/278.xml', output)
}
def 'test generation of metadata-providers.xml with filters'() {
@@ -70,7 +73,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification {
def output = metadataResolverService.generateConfiguration()
then:
- assert !DiffBuilder.compare(Input.fromStream(this.class.getResourceAsStream('/conf/278.2.xml'))).withTest(Input.fromDocument(output)).ignoreComments().ignoreWhitespace().build().hasDifferences()
+ assert generatedXmlTheSameAsExpectedXml('/conf/278.2.xml', output)
}
//TODO: check that this configuration is sufficient
diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy
index e9dc3c390..fc24d7a21 100644
--- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy
+++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAMetadataResolverServiceImplTests.groovy
@@ -111,43 +111,27 @@ class JPAMetadataResolverServiceImplTests extends Specification {
!diff.hasDifferences()
}
- def 'test generating filter xml snippet'() {
+ def 'test generating EntityRoleWhitelistFilter xml snippet'() {
given:
def xml = new MarkupBuilder()
def filter = testObjectGenerator.entityRoleWhitelistFilter()
when:
- xml.MetadataProvider(id: 'ShibbolethMetadata',
- xmlns: 'urn:mace:shibboleth:2.0:metadata',
- 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
- 'xsi:type': 'ChainingMetadataProvider',
- 'xsi:schemaLocation': 'urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd urn:oasis:names:tc:SAML:2.0:assertion http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd'
- ) {
- MetadataProvider(id: 'HTTPMetadata',
- 'xsi:type': 'FileBackedHTTPMetadataProvider',
- backingFile: '%{idp.home}/metadata/incommonmd.xml',
- metadataURL: 'http://md.incommon.org/InCommon/InCommon-metadata.xml',
- minRefreshDelay: 'PT5M',
- maxRefreshDelay: 'PT1H',
- refreshDelayFactor: '0.75'
- ) {
- genXmlSnippet(filter, delegate)
- }
- }
+ genXmlSnippet(xml) { JPAMetadataResolverServiceImpl.cast(metadataResolverService).constructFilterXmlNode(filter, it) }
println xml.toString()
then:
xml
}
- private genXmlSnippet(EntityRoleWhiteListFilter filter, xmlDelegate) {
- xmlDelegate.MetadataFilter(
- 'xsi:type': 'EntityRoleWhiteList',
- 'xmlns:md': 'urn:oasis:names:tc:SAML:2.0:metadata'
+ static genXmlSnippet(MarkupBuilder xml, Closure xmlNodeGenerator) {
+ xml.MetadataProvider(id: 'ShibbolethMetadata',
+ xmlns: 'urn:mace:shibboleth:2.0:metadata',
+ 'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
+ 'xsi:type': 'ChainingMetadataProvider',
+ 'xsi:schemaLocation': 'urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd urn:mace:shibboleth:2.0:resource http://shibboleth.net/schema/idp/shibboleth-resource.xsd urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd urn:oasis:names:tc:SAML:2.0:assertion http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd'
) {
- filter.retainedRoles.each {
- xmlDelegate.RetainedRole(it)
- }
+ xmlNodeGenerator(delegate)
}
}
diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy
index 1a6a085e2..d235f9d06 100644
--- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy
+++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestHelpers.groovy
@@ -2,6 +2,9 @@ package edu.internet2.tier.shibboleth.admin.ui.util
import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.RelyingPartyOverridesRepresentation
import org.apache.commons.lang.StringUtils
+import org.w3c.dom.Document
+import org.xmlunit.builder.DiffBuilder
+import org.xmlunit.builder.Input
/**
* @author Bill Smith (wsmith@unicon.net)
@@ -22,4 +25,8 @@ class TestHelpers {
return count
}
+
+ static generatedXmlTheSameAsExpectedXml(String expectedXmlResource, Document generatedXml) {
+ !DiffBuilder.compare(Input.fromStream(this.class.getResourceAsStream(expectedXmlResource))).withTest(Input.fromDocument(generatedXml)).ignoreComments().ignoreWhitespace().build().hasDifferences()
+ }
}
diff --git a/backend/src/test/resources/conf/278.2.xml b/backend/src/test/resources/conf/278.2.xml
index d8305ada3..7b8718caf 100644
--- a/backend/src/test/resources/conf/278.2.xml
+++ b/backend/src/test/resources/conf/278.2.xml
@@ -18,9 +18,6 @@
-
- md:SPSSODescriptor
-
there
diff --git a/backend/src/test/resources/conf/278.xml b/backend/src/test/resources/conf/278.xml
index e6e0e88d0..5d02714ff 100644
--- a/backend/src/test/resources/conf/278.xml
+++ b/backend/src/test/resources/conf/278.xml
@@ -18,9 +18,6 @@
-
- md:SPSSODescriptor
-