diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicHttpMetadataResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicHttpMetadataResolver.java index 886839bf8..0910c9050 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicHttpMetadataResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicHttpMetadataResolver.java @@ -2,7 +2,6 @@ import lombok.EqualsAndHashCode; import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; @@ -17,23 +16,32 @@ */ @Entity @EqualsAndHashCode(callSuper = true) -@NoArgsConstructor @Getter @Setter @ToString public class DynamicHttpMetadataResolver extends MetadataResolver { + public static final String DEFAULT_TIMEOUT = "PT5S"; + @Embedded private DynamicMetadataResolverAttributes dynamicMetadataResolverAttributes; @Embedded private HttpMetadataResolverAttributes httpMetadataResolverAttributes; - private int maxConnectionsTotal; + private Integer maxConnectionsTotal = 100; - private int maxConnectionsPerRoute; + private Integer maxConnectionsPerRoute = 100; @ElementCollection @OrderColumn private List supportedContentTypes; + + public DynamicHttpMetadataResolver() { + this.httpMetadataResolverAttributes = new HttpMetadataResolverAttributes(); + this.httpMetadataResolverAttributes.setConnectionRequestTimeout(DEFAULT_TIMEOUT); + this.httpMetadataResolverAttributes.setConnectionTimeout(DEFAULT_TIMEOUT); + this.httpMetadataResolverAttributes.setSocketTimeout(DEFAULT_TIMEOUT); + this.dynamicMetadataResolverAttributes = new DynamicMetadataResolverAttributes(); + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicMetadataResolverAttributes.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicMetadataResolverAttributes.java index 830d06a50..564f2871e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicMetadataResolverAttributes.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/DynamicMetadataResolverAttributes.java @@ -20,17 +20,17 @@ public class DynamicMetadataResolverAttributes { private String taskTimerRef; - private Double refreshDelayFactor; + private Double refreshDelayFactor = 0.75; - private String minCacheDuration; + private String minCacheDuration = "PT10M"; - private String maxCacheDuration; + private String maxCacheDuration = "PT8H"; - private String maxIdleEntityData; + private String maxIdleEntityData = "PT8H"; private Boolean removeIdleEntityData; - private String cleanupTaskInterval; + private String cleanupTaskInterval = "PT30M"; private String persistentCacheManagerRef; @@ -38,9 +38,9 @@ public class DynamicMetadataResolverAttributes { private String persistentCacheKeyGeneratorRef; - private Boolean initializeFromPersistentCacheInBackground; + private Boolean initializeFromPersistentCacheInBackground = true; - private String backgroundInitializationFromCacheDelay; + private String backgroundInitializationFromCacheDelay = "PT2S"; private String initializationFromCachePredicateRef; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/HttpMetadataResolverAttributes.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/HttpMetadataResolverAttributes.java index 706c34e08..8054ba852 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/HttpMetadataResolverAttributes.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/resolvers/HttpMetadataResolverAttributes.java @@ -28,7 +28,7 @@ public class HttpMetadataResolverAttributes { private String socketTimeout; - private Boolean disregardTLSCertificate; + private Boolean disregardTLSCertificate = false; private String tlsTrustEngineRef; 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 659380db6..1bbafefba 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 @@ -45,7 +45,7 @@ public class MetadataResolver extends AbstractAuditable { private Boolean useDefaultPredicateRegistry = true; - private Boolean satisfyAnyPredicates; + private Boolean satisfyAnyPredicates = false; @OneToMany(cascade = CascadeType.ALL) @OrderColumn 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 9208aa635..af9497b6e 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 @@ -107,9 +107,8 @@ class IncommonJPAMetadataResolverServiceImplTests extends Specification { mr.setName("HTTPMetadata") metadataResolverRepository.save(mr) - mr = new TestObjectGenerator(attributeUtility).buildDynamicHttpMetadataResolver() - mr.name = "DynamicHttpMetadata" - metadataResolverRepository.save(mr) + // Generate and test edu.internet2.tier.shibboleth.admin.ui.domain.resolvers.DynamicHttpMetadataResolver. + metadataResolverRepository.save(new TestObjectGenerator(attributeUtility).dynamicHttpMetadataResolver()) } return resolver 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 ae9e99db9..e7f2eb949 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 @@ -317,6 +317,13 @@ class TestObjectGenerator { } } + DynamicHttpMetadataResolver dynamicHttpMetadataResolver() { + new DynamicHttpMetadataResolver().with { + it.name = 'DynamicHTTP' + it + } + } + FileBackedHttpMetadataResolver buildFileBackedHttpMetadataResolver() { def resolver = new FileBackedHttpMetadataResolver() resolver.name = generator.randomString(10) diff --git a/backend/src/test/resources/conf/278.2.xml b/backend/src/test/resources/conf/278.2.xml index d8305ada3..94bf255f8 100644 --- a/backend/src/test/resources/conf/278.2.xml +++ b/backend/src/test/resources/conf/278.2.xml @@ -8,6 +8,34 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 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"> + + + + + md:SPSSODescriptor + + + + there + + https://sp1.example.org + + md:SPSSODescriptor - - - there - - https://sp1.example.org - diff --git a/backend/src/test/resources/conf/278.xml b/backend/src/test/resources/conf/278.xml index e6e0e88d0..5b3577044 100644 --- a/backend/src/test/resources/conf/278.xml +++ b/backend/src/test/resources/conf/278.xml @@ -8,6 +8,27 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 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"> + + + + + md:SPSSODescriptor + +