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 aa2d1e7df..b60c9b0c8 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 @@ -100,7 +100,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { ) { metadataResolverRepository.findAll().each { edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.MetadataResolver mr -> //TODO: We cannot/do not currently have the code to marshall the internal incommon chaining resolver - if (mr.type != 'BaseMetadataResolver') { + if ((mr.type != 'BaseMetadataResolver') && (mr.enabled)) { constructXmlNodeForResolver(mr, delegate) { MetadataFilter( 'xsi:type': 'SignatureValidation', diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java index ab8eda99f..7d0fc03d1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/MetadataResolver.java @@ -54,6 +54,8 @@ public class MetadataResolver extends AbstractAuditable { @Column(unique = true) private String xmlId; + private Boolean enabled = true; + private Boolean requireValidMetadata = true; private Boolean failFastInitialization = true; 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 30ad3172a..c6c64e7e1 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 @@ -229,6 +229,19 @@ class JPAMetadataResolverServiceImplTests extends Specification { generatedXmlIsTheSameAsExpectedXml('/conf/520.xml', domBuilder.parseText(writer.toString())) } + def 'test generating disabled MetadataResolver xml snippet'() { + given: 'disabled metadata resolver' + def resolver = testObjectGenerator.filesystemMetadataResolver() + resolver.enabled = false + metadataResolverRepository.save(resolver) + + when: + def generatedXmlDocument = this.metadataResolverService.generateConfiguration() + + then: + generatedXmlIsTheSameAsExpectedXml('/conf/670.xml', generatedXmlDocument) + } + static genXmlSnippet(MarkupBuilder xml, Closure xmlNodeGenerator) { xml.MetadataProvider('id': 'ShibbolethMetadata', 'xmlns': 'urn:mace:shibboleth:2.0:metadata', diff --git a/backend/src/test/resources/conf/670.xml b/backend/src/test/resources/conf/670.xml new file mode 100644 index 000000000..952c86ee6 --- /dev/null +++ b/backend/src/test/resources/conf/670.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file