From 7106751a9165130eeccd5bed5f4d3714e41e1574 Mon Sep 17 00:00:00 2001 From: Dmitriy Kopylenko Date: Wed, 18 Jul 2018 14:13:06 -0400 Subject: [PATCH] SHIBUI-621: Introduce xmlId --- .../ui/service/JPAMetadataResolverServiceImpl.groovy | 10 +++++----- .../admin/ui/domain/resolvers/MetadataResolver.java | 3 +++ .../IncommonJPAMetadataResolverServiceImplTests.groovy | 4 +--- .../service/JPAMetadataResolverServiceImplTests.groovy | 4 ++-- .../admin/ui/util/TestObjectGenerator.groovy | 5 +++++ 5 files changed, 16 insertions(+), 10 deletions(-) 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 34029e28a..a9485073b 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 @@ -163,7 +163,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } void constructXmlNodeForResolver(FilesystemMetadataResolver resolver, def markupBuilderDelegate, Closure childNodes) { - markupBuilderDelegate.MetadataProvider(id: resolver.name, + markupBuilderDelegate.MetadataProvider(id: resolver.xmlId, 'xsi:type': 'FilesystemMetadataProvider', metadataFile: resolver.metadataFile, @@ -187,7 +187,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } void constructXmlNodeForResolver(DynamicHttpMetadataResolver resolver, def markupBuilderDelegate, Closure childNodes) { - markupBuilderDelegate.MetadataProvider(id: resolver.name, + markupBuilderDelegate.MetadataProvider(id: resolver.xmlId, 'xsi:type': 'DynamicHttpMetadataProvider', requireValidMetadata: !resolver.requireValidMetadata ?: null, failFastInitialization: !resolver.failFastInitialization ?: null, @@ -234,7 +234,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { } void constructXmlNodeForResolver(FileBackedHttpMetadataResolver resolver, def markupBuilderDelegate, Closure childNodes) { - markupBuilderDelegate.MetadataProvider(id: resolver.name, + markupBuilderDelegate.MetadataProvider(id: resolver.xmlId, 'xsi:type': 'FileBackedHTTPMetadataProvider', backingFile: resolver.backingFile, metadataURL: resolver.metadataURL, @@ -279,7 +279,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { sourceManagerRef: resolver.sourceManagerRef, sourceKeyGeneratorRef: resolver.sourceKeyGeneratorRef, - id: resolver.name, + id: resolver.xmlId, 'xsi:type': 'DynamicHttpMetadataProvider', requireValidMetadata: !resolver.requireValidMetadata ?: null, failFastInitialization: !resolver.failFastInitialization ?: null, @@ -314,7 +314,7 @@ class JPAMetadataResolverServiceImpl implements MetadataResolverService { def resourceType = resolver.validateAndDetermineResourceType() markupBuilderDelegate.MetadataProvider( - id: resolver.name, + id: resolver.xmlId, 'xsi:type': 'ResourceBackedMetadataProvider', parserPoolRef: resolver.reloadableMetadataResolverAttributes?.parserPoolRef, minRefreshDelay: resolver.reloadableMetadataResolverAttributes?.minRefreshDelay, 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 d1f0e97f6..ab8eda99f 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 @@ -51,6 +51,9 @@ public class MetadataResolver extends AbstractAuditable { @Column(unique = true) private String resourceId = UUID.randomUUID().toString(); + @Column(unique = true) + private String xmlId; + private Boolean requireValidMetadata = true; private Boolean failFastInitialization = true; 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 24a97ccdb..853ad36c1 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 @@ -130,9 +130,7 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { if (!metadataResolverRepository.findAll().iterator().hasNext()) { //Generate and test edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver. Add more as // we implement them - def mr = new TestObjectGenerator(attributeUtility).fileBackedHttpMetadataResolver() - mr.setName("HTTPMetadata") - metadataResolverRepository.save(mr) + metadataResolverRepository.save(new TestObjectGenerator(attributeUtility).fileBackedHttpMetadataResolver()) // Generate and test edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver. metadataResolverRepository.save(new TestObjectGenerator(attributeUtility).dynamicHttpMetadataResolver()) 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 9c367c1d6..bbcb7f5c6 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 @@ -176,7 +176,7 @@ class JPAMetadataResolverServiceImplTests extends Specification { def 'test generating ResourceBackedMetadataResolver with SVN resource type xml snippet'() { given: def resolver = new edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver().with { - it.name = 'SVNResourceMetadata' + it.xmlId = 'SVNResourceMetadata' it.svnMetadataResource = new SvnMetadataResource().with { it.resourceFile = 'entity.xml' it.repositoryURL = 'https://svn.example.org/repo/path/to.dir' @@ -198,7 +198,7 @@ class JPAMetadataResolverServiceImplTests extends Specification { def 'test generating ResourceBackedMetadataResolver with classpath resource type xml snippet'() { given: def resolver = new edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver().with { - it.name = 'ClasspathResourceMetadata' + it.xmlId = 'ClasspathResourceMetadata' it.classpathMetadataResource = new ClasspathMetadataResource().with { it.file = '/path/to/a/classpath/location/metadata.xml' it diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy index 4652fe361..4469e1b36 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy @@ -403,6 +403,7 @@ class TestObjectGenerator { FilesystemMetadataResolver filesystemMetadataResolver() { new FilesystemMetadataResolver().with { it.name = 'FilesystemMetadata' + it.xmlId = 'FilesystemMetadata' it.metadataFile = 'some metadata filename' it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes().with { @@ -418,6 +419,7 @@ class TestObjectGenerator { FileBackedHttpMetadataResolver fileBackedHttpMetadataResolver() { new FileBackedHttpMetadataResolver().with { it.name = 'HTTPMetadata' + it.xmlId = 'HTTPMetadata' it.backingFile = '%{idp.home}/metadata/incommonmd.xml' it.metadataURL = 'http://md.incommon.org/InCommon/InCommon-metadata.xml' @@ -434,6 +436,7 @@ class TestObjectGenerator { DynamicHttpMetadataResolver dynamicHttpMetadataResolver() { new DynamicHttpMetadataResolver().with { it.name = 'DynamicHTTP' + it.xmlId = 'DynamicHTTP' it } } @@ -441,6 +444,7 @@ class TestObjectGenerator { LocalDynamicMetadataResolver localDynamicMetadataResolver() { new LocalDynamicMetadataResolver().with { it.name = 'LocalDynamic' + it.xmlId = 'LocalDynamic' it } } @@ -448,6 +452,7 @@ class TestObjectGenerator { ResourceBackedMetadataResolver resourceBackedMetadataResolverForSVN() { new ResourceBackedMetadataResolver().with { it.name = 'SVNResourceMetadata' + it.xmlId = 'SVNResourceMetadata' it.svnMetadataResource = new SvnMetadataResource().with { it.resourceFile = 'entity.xml' it.repositoryURL = 'https://svn.example.org/repo/path/to.dir'