Skip to content

Commit

Permalink
[SHIBUI-519]
Browse files Browse the repository at this point in the history
Set default values on some resolvers.
Test updates.
  • Loading branch information
Bill Smith committed Jun 11, 2018
1 parent 444942d commit 1d1ef9b
Show file tree
Hide file tree
Showing 8 changed files with 79 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

Expand All @@ -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<String> 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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,27 @@ 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;

private String persistentCacheManagerDirectory;

private String persistentCacheKeyGeneratorRef;

private Boolean initializeFromPersistentCacheInBackground;
private Boolean initializeFromPersistentCacheInBackground = true;

private String backgroundInitializationFromCacheDelay;
private String backgroundInitializationFromCacheDelay = "PT2S";

private String initializationFromCachePredicateRef;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class HttpMetadataResolverAttributes {

private String socketTimeout;

private Boolean disregardTLSCertificate;
private Boolean disregardTLSCertificate = false;

private String tlsTrustEngineRef;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
34 changes: 28 additions & 6 deletions backend/src/test/resources/conf/278.2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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">
<MetadataProvider backgroundInitializationFromCacheDelay="PT2S"
cleanupTaskInterval="PT30M"
connectionRequestTimeout="PT5S"
connectionTimeout="PT5S"
id="DynamicHTTP"
maxCacheDuration="PT8H"
maxConnectionsPerRoute="100"
maxConnectionsTotal="100"
maxIdleEntityData="PT8H"
minCacheDuration="PT10M"
refreshDelayFactor="0.75"
removeIdleEntityData="true"
socketTimeout="PT5S"
supportedContentTypes="[]"
xsi:type="DynamicHttpMetadataProvider">
<MetadataFilter certificateFile="%{idp.home}/credentials/inc-md-cert.pem" requireSignedRoot="true" xsi:type="SignatureValidation"/>
<MetadataFilter maxValidityInterval="P14D" xsi:type="RequiredValidUntil"/>
<MetadataFilter xsi:type="EntityRoleWhiteList">
<RetainedRole>md:SPSSODescriptor</RetainedRole>
</MetadataFilter>
<MetadataFilter xsi:type="EntityAttributes">
<saml:Attribute
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Name="here">
<saml:AttributeValue>there</saml:AttributeValue>
</saml:Attribute>
<Entity>https://sp1.example.org</Entity>
</MetadataFilter>
</MetadataProvider>
<MetadataProvider id="HTTPMetadata"
xsi:type="FileBackedHTTPMetadataProvider"
backingFile="%{idp.home}/metadata/incommonmd.xml"
Expand All @@ -21,12 +49,6 @@
<MetadataFilter xsi:type="EntityRoleWhiteList">
<RetainedRole>md:SPSSODescriptor</RetainedRole>
</MetadataFilter>
<MetadataFilter xsi:type="EntityAttributes">
<saml:Attribute Name="here">
<saml:AttributeValue>there</saml:AttributeValue>
</saml:Attribute>
<Entity>https://sp1.example.org</Entity>
</MetadataFilter>
</MetadataProvider>

</MetadataProvider>
21 changes: 21 additions & 0 deletions backend/src/test/resources/conf/278.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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">
<MetadataProvider backgroundInitializationFromCacheDelay="PT2S"
cleanupTaskInterval="PT30M"
connectionRequestTimeout="PT5S"
connectionTimeout="PT5S"
id="DynamicHTTP"
maxCacheDuration="PT8H"
maxConnectionsPerRoute="100"
maxConnectionsTotal="100"
maxIdleEntityData="PT8H"
minCacheDuration="PT10M"
refreshDelayFactor="0.75"
removeIdleEntityData="true"
socketTimeout="PT5S"
supportedContentTypes="[]"
xsi:type="DynamicHttpMetadataProvider">
<MetadataFilter certificateFile="%{idp.home}/credentials/inc-md-cert.pem" requireSignedRoot="true" xsi:type="SignatureValidation"/>
<MetadataFilter maxValidityInterval="P14D" xsi:type="RequiredValidUntil"/>
<MetadataFilter xsi:type="EntityRoleWhiteList">
<RetainedRole>md:SPSSODescriptor</RetainedRole>
</MetadataFilter>
</MetadataProvider>
<MetadataProvider id="HTTPMetadata"
xsi:type="FileBackedHTTPMetadataProvider"
backingFile="%{idp.home}/metadata/incommonmd.xml"
Expand Down

0 comments on commit 1d1ef9b

Please sign in to comment.