Skip to content

Commit

Permalink
1263 wip
Browse files Browse the repository at this point in the history
  • Loading branch information
dima767 committed Jun 24, 2019
1 parent 9fd7eca commit 0326701
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@ import edu.internet2.tier.shibboleth.admin.ui.configuration.CoreShibUiConfigurat
import edu.internet2.tier.shibboleth.admin.ui.configuration.InternationalizationConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.SearchConfiguration
import edu.internet2.tier.shibboleth.admin.ui.configuration.TestConfiguration
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ClasspathMetadataResource
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicMetadataResolverAttributes
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FileBackedHttpMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.FilesystemMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.HttpMetadataResolverAttributes
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.LocalDynamicMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ReloadableMetadataResolverAttributes
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.ResourceBackedMetadataResolver
import edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.TemplateScheme
import edu.internet2.tier.shibboleth.admin.ui.opensaml.OpenSamlObjects
import edu.internet2.tier.shibboleth.admin.ui.repository.MetadataResolverRepository
import org.springframework.beans.factory.annotation.Autowired
Expand Down Expand Up @@ -158,10 +162,17 @@ class MetadataResolverEnversVersioningTests extends Specification {

def "test versioning of DynamicHttpMetadataResolver"() {
setup:
def expectedModifiedPersistentEntities = [DynamicHttpMetadataResolver.name]
def expectedModifiedPersistentEntities = [DynamicHttpMetadataResolver.name,
TemplateScheme.name]

when:
DynamicHttpMetadataResolver resolver = new DynamicHttpMetadataResolver(name: 'dhmr')
DynamicHttpMetadataResolver resolver = new DynamicHttpMetadataResolver(name: 'dhmr').with {
it.metadataRequestURLConstructionScheme = new TemplateScheme().with {
it.content = 'content'
it
}
it
}

def resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
Expand All @@ -178,6 +189,7 @@ class MetadataResolverEnversVersioningTests extends Specification {

when:
resolver.name = 'dhmrUPDATED'
resolver.metadataRequestURLConstructionScheme.content = 'Updated content'

resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
Expand All @@ -188,6 +200,7 @@ class MetadataResolverEnversVersioningTests extends Specification {
then:
resolverHistory.size() == 2
getTargetEntityForRevisionIndex(resolverHistory, 1).name == 'dhmrUPDATED'
getTargetEntityForRevisionIndex(resolverHistory, 1).metadataRequestURLConstructionScheme.content == 'Updated content'
getRevisionEntityForRevisionIndex(resolverHistory, 1).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 1).timestamp > 0L
getModifiedEntityNames(resolverHistory, 1).sort() == expectedModifiedPersistentEntities.sort()
Expand All @@ -198,4 +211,111 @@ class MetadataResolverEnversVersioningTests extends Specification {
getRevisionEntityForRevisionIndex(resolverHistory, 0).timestamp > 0L
getModifiedEntityNames(resolverHistory, 0).sort() == expectedModifiedPersistentEntities.sort()
}

def "test versioning of FilesystemMetadataResolver"() {
setup:
def expectedModifiedPersistentEntities = [FilesystemMetadataResolver.name]

when:
FilesystemMetadataResolver resolver = new FilesystemMetadataResolver(name: 'fmr', metadataFile: 'metadata.xml').with {
it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes(indexesRef: 'indexesRef')
it
}

def resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
FilesystemMetadataResolver,
txMgr,
entityManager)

then:
resolverHistory.size() == 1
getTargetEntityForRevisionIndex(resolverHistory, 0).name == 'fmr'
getTargetEntityForRevisionIndex(resolverHistory, 0).metadataFile == 'metadata.xml'
getTargetEntityForRevisionIndex(resolverHistory, 0).reloadableMetadataResolverAttributes.indexesRef == 'indexesRef'
getRevisionEntityForRevisionIndex(resolverHistory, 0).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 0).timestamp > 0L
getModifiedEntityNames(resolverHistory, 0).sort() == expectedModifiedPersistentEntities.sort()

when:
resolver.name = 'fmrUPDATED'
resolver.metadataFile = 'metadataUPDATED.xml'
resolver.reloadableMetadataResolverAttributes.indexesRef = 'indexesRefUPDATED'

resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
FilesystemMetadataResolver,
txMgr,
entityManager)

then:
resolverHistory.size() == 2
getTargetEntityForRevisionIndex(resolverHistory, 1).name == 'fmrUPDATED'
getTargetEntityForRevisionIndex(resolverHistory, 1).metadataFile == 'metadataUPDATED.xml'
getTargetEntityForRevisionIndex(resolverHistory, 1).reloadableMetadataResolverAttributes.indexesRef == 'indexesRefUPDATED'
getRevisionEntityForRevisionIndex(resolverHistory, 1).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 1).timestamp > 0L
getModifiedEntityNames(resolverHistory, 1).sort() == expectedModifiedPersistentEntities.sort()

//Check the original revision is intact
getTargetEntityForRevisionIndex(resolverHistory, 0).name == 'fmr'
getTargetEntityForRevisionIndex(resolverHistory, 0).metadataFile == 'metadata.xml'
getTargetEntityForRevisionIndex(resolverHistory, 0).reloadableMetadataResolverAttributes.indexesRef == 'indexesRef'
getRevisionEntityForRevisionIndex(resolverHistory, 0).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 0).timestamp > 0L
}

def "test versioning of ResourceBackedMetadataResolver"() {
setup:
def expectedModifiedPersistentEntities = [ResourceBackedMetadataResolver.name]

when:
ResourceBackedMetadataResolver resolver = new ResourceBackedMetadataResolver(name: 'rbmr').with {
it.reloadableMetadataResolverAttributes = new ReloadableMetadataResolverAttributes(taskTimerRef: 'taskTimerRef')
it.classpathMetadataResource = new ClasspathMetadataResource(file: 'metadata.xml')
it
}

def resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
ResourceBackedMetadataResolver,
txMgr,
entityManager)

then:
resolverHistory.size() == 1
getTargetEntityForRevisionIndex(resolverHistory, 0).name == 'rbmr'
getTargetEntityForRevisionIndex(resolverHistory, 0).reloadableMetadataResolverAttributes.taskTimerRef == 'taskTimerRef'
getTargetEntityForRevisionIndex(resolverHistory, 0).classpathMetadataResource.file == 'metadata.xml'
getRevisionEntityForRevisionIndex(resolverHistory, 0).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 0).timestamp > 0L
getModifiedEntityNames(resolverHistory, 0).sort() == expectedModifiedPersistentEntities.sort()

when:
resolver.name = 'rbmrUPDATED'
resolver.reloadableMetadataResolverAttributes.taskTimerRef = 'taskTimerRefUPDATED'
resolver.classpathMetadataResource.file = 'metadataUPDATED.xml'

resolverHistory = updateAndGetRevisionHistoryOfMetadataResolver(resolver,
metadataResolverRepository,
ResourceBackedMetadataResolver,
txMgr,
entityManager)

then:
resolverHistory.size() == 2
getTargetEntityForRevisionIndex(resolverHistory, 1).name == 'rbmrUPDATED'
getTargetEntityForRevisionIndex(resolverHistory, 1).reloadableMetadataResolverAttributes.taskTimerRef == 'taskTimerRefUPDATED'
getTargetEntityForRevisionIndex(resolverHistory, 1).classpathMetadataResource.file == 'metadataUPDATED.xml'
getRevisionEntityForRevisionIndex(resolverHistory, 1).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 1).timestamp > 0L
getModifiedEntityNames(resolverHistory, 1).sort() == expectedModifiedPersistentEntities.sort()

//Check the original revision is intact
getTargetEntityForRevisionIndex(resolverHistory, 0).name == 'rbmr'
getTargetEntityForRevisionIndex(resolverHistory, 0).reloadableMetadataResolverAttributes.taskTimerRef == 'taskTimerRef'
getTargetEntityForRevisionIndex(resolverHistory, 0).classpathMetadataResource.file == 'metadata.xml'
getRevisionEntityForRevisionIndex(resolverHistory, 0).principalUserName == 'anonymousUser'
getRevisionEntityForRevisionIndex(resolverHistory, 0).timestamp > 0L
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
@JsonSubTypes.Type(value=SignatureValidationFilter.class, name="SignatureValidation"),
@JsonSubTypes.Type(value=RequiredValidUntilFilter.class, name="RequiredValidUntil"),
@JsonSubTypes.Type(value=NameIdFormatFilter.class, name="NameIDFormat")})
@Audited
public class MetadataFilter extends AbstractAuditable {

@JsonProperty("@type")
Expand All @@ -59,4 +58,4 @@ public int getVersion() {
}
return this.hashCode();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.envers.Audited;

import javax.persistence.Embedded;
import javax.persistence.Entity;
Expand All @@ -16,6 +17,7 @@
@Getter
@Setter
@ToString
@Audited
public class FilesystemMetadataResolver extends MetadataResolver {
public FilesystemMetadataResolver() {
type = "FilesystemMetadataResolver";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.envers.Audited;

import javax.persistence.Entity;

Expand All @@ -13,6 +14,7 @@
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@Audited
public class MetadataQueryProtocolScheme extends MetadataRequestURLConstructionScheme {

public MetadataQueryProtocolScheme() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import lombok.ToString;
import org.hibernate.envers.AuditOverride;
import org.hibernate.envers.Audited;
import org.hibernate.envers.NotAudited;

import javax.persistence.CascadeType;
import javax.persistence.Column;
Expand Down Expand Up @@ -74,6 +75,7 @@ public class MetadataResolver extends AbstractAuditable {

@OneToMany(cascade = CascadeType.ALL)
@OrderColumn
@NotAudited
private List<MetadataFilter> metadataFilters = new ArrayList<>();

@Transient
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.envers.Audited;

import javax.persistence.Column;
import javax.persistence.Entity;
Expand All @@ -15,6 +16,7 @@
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@Audited
public class RegexScheme extends MetadataRequestURLConstructionScheme {

public RegexScheme() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.envers.Audited;

import javax.persistence.Embedded;
import javax.persistence.Entity;
Expand All @@ -16,6 +17,7 @@
@Getter
@Setter
@ToString
@Audited
public class ResourceBackedMetadataResolver extends MetadataResolver {
public ResourceBackedMetadataResolver() {
type = "ResourceBackedMetadataResolver";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.envers.Audited;

import javax.persistence.Entity;

Expand All @@ -13,6 +14,7 @@
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@Audited
public class TemplateScheme extends MetadataRequestURLConstructionScheme {

public TemplateScheme () {
Expand Down

0 comments on commit 0326701

Please sign in to comment.